38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { DialogPrompt } from "../ui/dialog-prompt"
|
|
import { type DialogContext, useDialog } from "../ui/dialog"
|
|
import { useSDK } from "../context/sdk"
|
|
import { useToast } from "../ui/toast"
|
|
import { errorMessage } from "../util/error"
|
|
|
|
export function DialogSessionRename(props: { sessionID: string; currentTitle?: string }) {
|
|
const dialog = useDialog()
|
|
const sdk = useSDK()
|
|
const toast = useToast()
|
|
|
|
return (
|
|
<DialogPrompt
|
|
title="Rename session"
|
|
placeholder="Session title"
|
|
value={props.currentTitle}
|
|
onConfirm={(value) => {
|
|
const title = value.trim()
|
|
if (!title) return
|
|
void sdk.api.session
|
|
.rename({ sessionID: props.sessionID, title })
|
|
.then(() => dialog.clear())
|
|
.catch((error) =>
|
|
toast.show({
|
|
message: `Failed to rename session: ${errorMessage(error)}`,
|
|
variant: "error",
|
|
duration: 5000,
|
|
}),
|
|
)
|
|
}}
|
|
onCancel={() => dialog.clear()}
|
|
/>
|
|
)
|
|
}
|
|
|
|
DialogSessionRename.show = (dialog: DialogContext, sessionID: string, currentTitle?: string) =>
|
|
dialog.replace(() => <DialogSessionRename sessionID={sessionID} currentTitle={currentTitle} />)
|