mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-06 15:46:37 +08:00
优化仪表板页面,移除冗余组件,简化代码结构
This commit is contained in:
@@ -434,62 +434,70 @@ export function WebsiteDetailPage({websiteId}: { websiteId: string }) {
|
||||
</AppCard>
|
||||
</div>
|
||||
|
||||
<WebsiteEditorModal
|
||||
isOpen={isEditorOpen}
|
||||
onClose={() => {
|
||||
setIsEditorOpen(false);
|
||||
setPreferredCertificateId(null);
|
||||
}}
|
||||
initialDomain={website}
|
||||
certificates={certificates}
|
||||
certificatesLoading={certificatesQuery.isLoading}
|
||||
preferredCertificateId={preferredCertificateId}
|
||||
onRequestImportCertificate={() => setIsCertificateImportOpen(true)}
|
||||
onSaved={() => {
|
||||
setPreferredCertificateId(null);
|
||||
setFeedback({tone: 'success', message: '网站已更新。'});
|
||||
}}
|
||||
/>
|
||||
{isEditorOpen ? (
|
||||
<WebsiteEditorModal
|
||||
isOpen={isEditorOpen}
|
||||
onClose={() => {
|
||||
setIsEditorOpen(false);
|
||||
setPreferredCertificateId(null);
|
||||
}}
|
||||
initialDomain={website}
|
||||
certificates={certificates}
|
||||
certificatesLoading={certificatesQuery.isLoading}
|
||||
preferredCertificateId={preferredCertificateId}
|
||||
onRequestImportCertificate={() => setIsCertificateImportOpen(true)}
|
||||
onSaved={() => {
|
||||
setPreferredCertificateId(null);
|
||||
setFeedback({tone: 'success', message: '网站已更新。'});
|
||||
}}
|
||||
/>
|
||||
) : null}
|
||||
|
||||
<CertificateImportModal
|
||||
isOpen={isCertificateImportOpen}
|
||||
onClose={() => setIsCertificateImportOpen(false)}
|
||||
onImported={(importedCertificate) => {
|
||||
setPreferredCertificateId(importedCertificate.id);
|
||||
setFeedback({
|
||||
tone: 'success',
|
||||
message: `证书 ${importedCertificate.name} 已导入,可在编辑网站时直接应用。`,
|
||||
});
|
||||
setIsEditorOpen(true);
|
||||
}}
|
||||
/>
|
||||
{isCertificateImportOpen ? (
|
||||
<CertificateImportModal
|
||||
isOpen={isCertificateImportOpen}
|
||||
onClose={() => setIsCertificateImportOpen(false)}
|
||||
onImported={(importedCertificate) => {
|
||||
setPreferredCertificateId(importedCertificate.id);
|
||||
setFeedback({
|
||||
tone: 'success',
|
||||
message: `证书 ${importedCertificate.name} 已导入,可在编辑网站时直接应用。`,
|
||||
});
|
||||
setIsEditorOpen(true);
|
||||
}}
|
||||
/>
|
||||
) : null}
|
||||
|
||||
<CertificateDetailModal
|
||||
certificateId={certificate?.id ?? null}
|
||||
isOpen={isCertificateDetailOpen}
|
||||
onClose={() => setIsCertificateDetailOpen(false)}
|
||||
onEdit={() => {
|
||||
setIsCertificateDetailOpen(false);
|
||||
setIsCertificateEditorOpen(true);
|
||||
}}
|
||||
onDelete={() => {
|
||||
setIsCertificateDetailOpen(false);
|
||||
handleDeleteCertificate();
|
||||
}}
|
||||
deleting={deleteCertificateMutation.isPending}
|
||||
/>
|
||||
{isCertificateDetailOpen ? (
|
||||
<CertificateDetailModal
|
||||
certificateId={certificate?.id ?? null}
|
||||
isOpen={isCertificateDetailOpen}
|
||||
onClose={() => setIsCertificateDetailOpen(false)}
|
||||
onEdit={() => {
|
||||
setIsCertificateDetailOpen(false);
|
||||
setIsCertificateEditorOpen(true);
|
||||
}}
|
||||
onDelete={() => {
|
||||
setIsCertificateDetailOpen(false);
|
||||
handleDeleteCertificate();
|
||||
}}
|
||||
deleting={deleteCertificateMutation.isPending}
|
||||
/>
|
||||
) : null}
|
||||
|
||||
<CertificateEditorModal
|
||||
certificateId={certificate?.id ?? null}
|
||||
isOpen={isCertificateEditorOpen}
|
||||
onClose={() => setIsCertificateEditorOpen(false)}
|
||||
onSaved={(updatedCertificate) => {
|
||||
setFeedback({
|
||||
tone: 'success',
|
||||
message: `证书 ${updatedCertificate.name} 已更新。`,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
{isCertificateEditorOpen ? (
|
||||
<CertificateEditorModal
|
||||
certificateId={certificate?.id ?? null}
|
||||
isOpen={isCertificateEditorOpen}
|
||||
onClose={() => setIsCertificateEditorOpen(false)}
|
||||
onSaved={(updatedCertificate) => {
|
||||
setFeedback({
|
||||
tone: 'success',
|
||||
message: `证书 ${updatedCertificate.name} 已更新。`,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
) : null}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ export function WebsiteEditorModal({
|
||||
? toManagedDomainFormValues(initialDomain)
|
||||
: defaultManagedDomainValues,
|
||||
);
|
||||
}, [form, initialDomain, isOpen]);
|
||||
}, [form, initialDomain, isOpen, saveMutation]);
|
||||
|
||||
useEffect(() => {
|
||||
if (!isOpen || !preferredCertificateId) {
|
||||
|
||||
@@ -28,7 +28,6 @@ import {
|
||||
DangerButton,
|
||||
PrimaryButton,
|
||||
} from '@/features/shared/components/resource-primitives';
|
||||
import { formatDateTime } from '@/lib/utils/date';
|
||||
|
||||
type FeedbackState = {
|
||||
tone: 'info' | 'success' | 'danger';
|
||||
@@ -205,36 +204,40 @@ export function WebsitesPage() {
|
||||
</AppCard>
|
||||
</div>
|
||||
|
||||
<WebsiteEditorModal
|
||||
isOpen={isWebsiteModalOpen}
|
||||
onClose={() => {
|
||||
setIsWebsiteModalOpen(false);
|
||||
setPreferredCertificateId(null);
|
||||
}}
|
||||
certificates={certificates}
|
||||
certificatesLoading={certificatesQuery.isLoading}
|
||||
preferredCertificateId={preferredCertificateId}
|
||||
onRequestImportCertificate={() => setIsCertificateImportOpen(true)}
|
||||
onSaved={(_, mode) => {
|
||||
setPreferredCertificateId(null);
|
||||
setFeedback({
|
||||
tone: 'success',
|
||||
message: mode === 'create' ? '网站已创建。' : '网站已更新。',
|
||||
});
|
||||
}}
|
||||
/>
|
||||
{isWebsiteModalOpen ? (
|
||||
<WebsiteEditorModal
|
||||
isOpen={isWebsiteModalOpen}
|
||||
onClose={() => {
|
||||
setIsWebsiteModalOpen(false);
|
||||
setPreferredCertificateId(null);
|
||||
}}
|
||||
certificates={certificates}
|
||||
certificatesLoading={certificatesQuery.isLoading}
|
||||
preferredCertificateId={preferredCertificateId}
|
||||
onRequestImportCertificate={() => setIsCertificateImportOpen(true)}
|
||||
onSaved={(_, mode) => {
|
||||
setPreferredCertificateId(null);
|
||||
setFeedback({
|
||||
tone: 'success',
|
||||
message: mode === 'create' ? '网站已创建。' : '网站已更新。',
|
||||
});
|
||||
}}
|
||||
/>
|
||||
) : null}
|
||||
|
||||
<CertificateImportModal
|
||||
isOpen={isCertificateImportOpen}
|
||||
onClose={() => setIsCertificateImportOpen(false)}
|
||||
onImported={(certificate) => {
|
||||
setPreferredCertificateId(certificate.id);
|
||||
setFeedback({
|
||||
tone: 'success',
|
||||
message: `证书 ${certificate.name} 已导入,可直接用于当前网站。`,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
{isCertificateImportOpen ? (
|
||||
<CertificateImportModal
|
||||
isOpen={isCertificateImportOpen}
|
||||
onClose={() => setIsCertificateImportOpen(false)}
|
||||
onImported={(certificate) => {
|
||||
setPreferredCertificateId(certificate.id);
|
||||
setFeedback({
|
||||
tone: 'success',
|
||||
message: `证书 ${certificate.name} 已导入,可直接用于当前网站。`,
|
||||
});
|
||||
}}
|
||||
/>
|
||||
) : null}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user