chore: update workspace setting section

This commit is contained in:
Steven 2024-08-28 23:29:30 +08:00
parent a8ea28066e
commit 4e5810e205

View File

@ -1,9 +1,9 @@
import { Button, Select, Textarea, Option, Divider } from "@mui/joy"; import { Button, Select, Textarea, Option, Divider } from "@mui/joy";
import { isEqual } from "lodash-es";
import { ExternalLinkIcon } from "lucide-react"; import { ExternalLinkIcon } from "lucide-react";
import { useState } from "react"; import { useState } from "react";
import { toast } from "react-hot-toast"; import { toast } from "react-hot-toast";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { workspaceSettingServiceClient } from "@/grpcweb";
import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1"; import { workspaceSettingNamePrefix, useWorkspaceSettingStore } from "@/store/v1";
import { WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service"; import { WorkspaceGeneralSetting } from "@/types/proto/api/v1/workspace_setting_service";
import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting"; import { WorkspaceSettingKey } from "@/types/proto/store/workspace_setting";
@ -13,9 +13,10 @@ import showUpdateCustomizedProfileDialog from "../UpdateCustomizedProfileDialog"
const WorkspaceSection = () => { const WorkspaceSection = () => {
const t = useTranslate(); const t = useTranslate();
const workspaceSettingStore = useWorkspaceSettingStore(); const workspaceSettingStore = useWorkspaceSettingStore();
const [workspaceGeneralSetting, setWorkspaceGeneralSetting] = useState<WorkspaceGeneralSetting>( const originalSetting = WorkspaceGeneralSetting.fromPartial(
WorkspaceGeneralSetting.fromPartial(workspaceSettingStore.getWorkspaceSettingByKey(WorkspaceSettingKey.GENERAL)?.generalSetting || {}), workspaceSettingStore.getWorkspaceSettingByKey(WorkspaceSettingKey.GENERAL)?.generalSetting || {},
); );
const [workspaceGeneralSetting, setWorkspaceGeneralSetting] = useState<WorkspaceGeneralSetting>(originalSetting);
const handleUpdateCustomizedProfileButtonClick = () => { const handleUpdateCustomizedProfileButtonClick = () => {
showUpdateCustomizedProfileDialog(); showUpdateCustomizedProfileDialog();
@ -35,11 +36,9 @@ const WorkspaceSection = () => {
const handleSaveGeneralSetting = async () => { const handleSaveGeneralSetting = async () => {
try { try {
await workspaceSettingServiceClient.setWorkspaceSetting({ await workspaceSettingStore.setWorkspaceSetting({
setting: { name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`,
name: `${workspaceSettingNamePrefix}${WorkspaceSettingKey.GENERAL}`, generalSetting: workspaceGeneralSetting,
generalSetting: workspaceGeneralSetting,
},
}); });
} catch (error: any) { } catch (error: any) {
toast.error(error.details); toast.error(error.details);
@ -118,8 +117,8 @@ const WorkspaceSection = () => {
<Option value={1}>Monday</Option> <Option value={1}>Monday</Option>
</Select> </Select>
</div> </div>
<div> <div className="mt-2 w-full flex justify-end">
<Button variant="outlined" color="neutral" onClick={handleSaveGeneralSetting}> <Button disabled={isEqual(workspaceGeneralSetting, originalSetting)} onClick={handleSaveGeneralSetting}>
{t("common.save")} {t("common.save")}
</Button> </Button>
</div> </div>