diff --git a/src/components/FolderTree.tsx b/src/components/FolderTree.tsx index ecb30cbc..915605e6 100644 --- a/src/components/FolderTree.tsx +++ b/src/components/FolderTree.tsx @@ -340,7 +340,7 @@ export type ModalFolderChooseProps = { onClose: () => void onSubmit?: (text: string) => void type?: string - defaultValue?: string + defaultValue?: string | (() => string) loading?: boolean footerSlot?: JSXElement headerSlot?: (handler: FolderTreeHandler | undefined) => JSXElement @@ -349,12 +349,19 @@ export type ModalFolderChooseProps = { } export const ModalFolderChoose = (props: ModalFolderChooseProps) => { const t = useT() - const [value, setValue] = createSignal(props.defaultValue ?? "/") + const [value, setValue] = createSignal("/") const [handler, setHandler] = createSignal() createEffect(() => { if (!props.opened) return handler()?.setPath(value()) }) + if (typeof props.defaultValue === "function") { + createEffect(() => { + setValue((props.defaultValue as () => string)()) + }) + } else if (typeof props.defaultValue === "string") { + setValue(props.defaultValue) + } return ( { +export const CreateFolderButton = (props: { handler?: FolderTreeHandler }) => { + if (!UserMethods.can(me(), UserPermissions.indexOf("write"))) { + return null + } const t = useT() return (