From d97cbbb1831f77922ccba22f87abfbf5d63c318d Mon Sep 17 00:00:00 2001 From: johnnyjoy Date: Wed, 18 Sep 2024 20:07:38 +0800 Subject: [PATCH] chore: update confirm dialogs --- .../web/src/components/setting/SSOSection.tsx | 35 +++++++++++-------- .../web/src/pages/SubscriptionSetting.tsx | 25 +++++++------ 2 files changed, 35 insertions(+), 25 deletions(-) diff --git a/frontend/web/src/components/setting/SSOSection.tsx b/frontend/web/src/components/setting/SSOSection.tsx index 96bb11b..4776d14 100644 --- a/frontend/web/src/components/setting/SSOSection.tsx +++ b/frontend/web/src/components/setting/SSOSection.tsx @@ -6,6 +6,7 @@ import { workspaceServiceClient } from "@/grpcweb"; import { useWorkspaceStore } from "@/stores"; import { FeatureType } from "@/stores/workspace"; import { IdentityProvider } from "@/types/proto/api/v1/workspace_service"; +import { showCommonDialog } from "../Alert"; import CreateIdentityProviderDrawer from "../CreateIdentityProviderDrawer"; import FeatureBadge from "../FeatureBadge"; import Icon from "../Icon"; @@ -33,21 +34,25 @@ const SSOSection = () => { }; const handleDeleteIdentityProvider = async (identityProvider: IdentityProvider) => { - const confirmed = window.confirm(`Are you sure you want to delete ${identityProvider.title}?`); - if (confirmed) { - try { - await workspaceServiceClient.updateWorkspaceSetting({ - setting: { - identityProviders: identityProviderList.filter((idp) => idp.id !== identityProvider.id), - }, - updateMask: ["identity_providers"], - }); - } catch (error: any) { - console.error(error); - toast.error(error.details); - } - await fetchIdentityProviderList(); - } + showCommonDialog({ + title: "Delete identity provider", + content: `Are you sure to delete identity provider \`${identityProvider.title}\`? You cannot undo this action.`, + style: "danger", + onConfirm: async () => { + try { + await workspaceServiceClient.updateWorkspaceSetting({ + setting: { + identityProviders: identityProviderList.filter((idp) => idp.id !== identityProvider.id), + }, + updateMask: ["identity_providers"], + }); + } catch (error: any) { + console.error(error); + toast.error(error.details); + } + await fetchIdentityProviderList(); + }, + }); }; return ( diff --git a/frontend/web/src/pages/SubscriptionSetting.tsx b/frontend/web/src/pages/SubscriptionSetting.tsx index 32ffced..11236ec 100644 --- a/frontend/web/src/pages/SubscriptionSetting.tsx +++ b/frontend/web/src/pages/SubscriptionSetting.tsx @@ -1,6 +1,7 @@ import { Alert, Button, Divider, Link, Textarea } from "@mui/joy"; import { useState } from "react"; import toast from "react-hot-toast"; +import { showCommonDialog } from "@/components/Alert"; import Icon from "@/components/Icon"; import SubscriptionFAQ from "@/components/SubscriptionFAQ"; import { subscriptionServiceClient } from "@/grpcweb"; @@ -22,16 +23,20 @@ const SubscriptionSetting: React.FC = () => { return; } - const confirmed = window.confirm("Are you sure you want to reset the license key?"); - if (confirmed) { - try { - await subscriptionServiceClient.deleteSubscription({}); - toast.success("License key has been reset"); - } catch (error: any) { - toast.error(error.details); - } - await workspaceStore.fetchWorkspaceProfile(); - } + showCommonDialog({ + title: "Reset licence key", + content: `Are you sure to reset the license key? You cannot undo this action.`, + style: "warning", + onConfirm: async () => { + try { + await subscriptionServiceClient.deleteSubscription({}); + toast.success("License key has been reset"); + } catch (error: any) { + toast.error(error.details); + } + await workspaceStore.fetchWorkspaceProfile(); + }, + }); }; const handleUpdateLicenseKey = async () => {