| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import { createMemo } from "solid-js"
- import { useSync } from "@tui/context/sync"
- import { DialogSelect } from "@tui/ui/dialog-select"
- import { useSDK } from "@tui/context/sdk"
- import { useRoute } from "@tui/context/route"
- export function DialogMessage(props: { messageID: string; sessionID: string }) {
- const sync = useSync()
- const sdk = useSDK()
- const message = createMemo(() => sync.data.message[props.sessionID]?.find((x) => x.id === props.messageID))
- const route = useRoute()
- return (
- <DialogSelect
- title="Message Actions"
- options={[
- {
- title: "Revert",
- value: "session.revert",
- description: "undo messages and file changes",
- onSelect: (dialog) => {
- sdk.client.session.revert({
- path: {
- id: props.sessionID,
- },
- body: {
- messageID: message()!.id,
- },
- })
- dialog.clear()
- },
- },
- {
- title: "Fork",
- value: "session.fork",
- description: "create a new session",
- onSelect: async (dialog) => {
- const result = await sdk.client.session.fork({
- path: {
- id: props.sessionID,
- },
- body: {
- messageID: props.messageID,
- },
- })
- route.navigate({
- sessionID: result.data!.id,
- type: "session",
- })
- dialog.clear()
- },
- },
- ]}
- />
- )
- }
|