import { useCreateMarkdownPermissionSetting, useMarkdownPermissionSetting, useUpdateMarkdownPermissionSetting } from "../../../utils/queries/markdown-permission-setting-queries"; import React, {useEffect, useState} from "react"; import { Plus, Save } from "lucide-react"; import {useUpdateMarkdownSetting} from "../../../utils/queries/markdown-setting-queries"; import { Button } from "../../ui/button"; import { Label } from "../../ui/input"; import { Spinner } from "../../ui/misc"; const SELECT_CLASS = "flex h-9 w-full rounded-md border border-input bg-background/60 px-3 py-1 text-sm text-foreground transition-colors focus-visible:outline-none focus-visible:border-primary/60 focus-visible:ring-2 focus-visible:ring-ring/40"; const MarkdownPermissionSettingPanel = ({markdownSetting, onClose}) => { const {data: setting, isFetching: settingIsFetching } = useMarkdownPermissionSetting(markdownSetting?.permission_setting_id); const [permission, setPermission] = useState(""); const createMarkdownPermissionSetting = useCreateMarkdownPermissionSetting(); const updateMarkdownSetting = useUpdateMarkdownSetting(); const updateMarkdownPermissionSetting = useUpdateMarkdownPermissionSetting(); useEffect(() => { if (setting && setting.permission !== undefined && setting.permission !== null) { setPermission(setting.permission); } }, [setting]); const handleCreatePermissionSetting = () => { createMarkdownPermissionSetting.mutate({permission: null}, { onSuccess: (data) => { updateMarkdownSetting.mutate({ id: markdownSetting.id, data: { permission_setting_id: data.id, } }); } }); }; const handleSaveMarkdownPermissionSetting = () => { const permissionValue = permission === "" ? null : permission; updateMarkdownPermissionSetting.mutate({ id: setting.id, data: { permission: permissionValue, } }, { onSuccess: () => alert("Saved"), onError: () => alert("Failed to save"), }); onClose(); }; if (settingIsFetching) { return (
); } return setting ? (

Permission Setting

) : ( ); }; export default MarkdownPermissionSettingPanel;