fix(app): remove fork session button
This commit is contained in:
@@ -26,8 +26,8 @@ import { createAutoScroll } from "@opencode-ai/ui/hooks"
|
|||||||
import { previewSelectedLines } from "@opencode-ai/ui/pierre/selection-bridge"
|
import { previewSelectedLines } from "@opencode-ai/ui/pierre/selection-bridge"
|
||||||
import { Button } from "@opencode-ai/ui/button"
|
import { Button } from "@opencode-ai/ui/button"
|
||||||
import { showToast } from "@opencode-ai/ui/toast"
|
import { showToast } from "@opencode-ai/ui/toast"
|
||||||
import { base64Encode, checksum } from "@opencode-ai/util/encode"
|
import { checksum } from "@opencode-ai/util/encode"
|
||||||
import { useNavigate, useSearchParams } from "@solidjs/router"
|
import { useSearchParams } from "@solidjs/router"
|
||||||
import { NewSessionView, SessionHeader } from "@/components/session"
|
import { NewSessionView, SessionHeader } from "@/components/session"
|
||||||
import { useComments } from "@/context/comments"
|
import { useComments } from "@/context/comments"
|
||||||
import { getSessionPrefetch, SESSION_PREFETCH_TTL } from "@/context/global-sync/session-prefetch"
|
import { getSessionPrefetch, SESSION_PREFETCH_TTL } from "@/context/global-sync/session-prefetch"
|
||||||
@@ -317,7 +317,6 @@ export default function Page() {
|
|||||||
const sync = useSync()
|
const sync = useSync()
|
||||||
const dialog = useDialog()
|
const dialog = useDialog()
|
||||||
const language = useLanguage()
|
const language = useLanguage()
|
||||||
const navigate = useNavigate()
|
|
||||||
const sdk = useSDK()
|
const sdk = useSDK()
|
||||||
const settings = useSettings()
|
const settings = useSettings()
|
||||||
const prompt = usePrompt()
|
const prompt = usePrompt()
|
||||||
@@ -1555,26 +1554,6 @@ export default function Page() {
|
|||||||
const reverting = createMemo(() => revertMutation.isPending || restoreMutation.isPending)
|
const reverting = createMemo(() => revertMutation.isPending || restoreMutation.isPending)
|
||||||
const restoring = createMemo(() => (restoreMutation.isPending ? restoreMutation.variables : undefined))
|
const restoring = createMemo(() => (restoreMutation.isPending ? restoreMutation.variables : undefined))
|
||||||
|
|
||||||
const fork = (input: { sessionID: string; messageID: string }) => {
|
|
||||||
const value = draft(input.messageID)
|
|
||||||
const dir = base64Encode(sdk.directory)
|
|
||||||
return sdk.client.session
|
|
||||||
.fork(input)
|
|
||||||
.then((result) => {
|
|
||||||
const next = result.data
|
|
||||||
if (!next) {
|
|
||||||
showToast({
|
|
||||||
variant: "error",
|
|
||||||
title: language.t("common.requestFailed"),
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
prompt.set(value, undefined, { dir, id: next.id })
|
|
||||||
navigate(`/${dir}/session/${next.id}`)
|
|
||||||
})
|
|
||||||
.catch(fail)
|
|
||||||
}
|
|
||||||
|
|
||||||
const revert = (input: { sessionID: string; messageID: string }) => {
|
const revert = (input: { sessionID: string; messageID: string }) => {
|
||||||
if (reverting()) return
|
if (reverting()) return
|
||||||
return revertMutation.mutateAsync(input)
|
return revertMutation.mutateAsync(input)
|
||||||
@@ -1593,7 +1572,7 @@ export default function Page() {
|
|||||||
.map((item) => ({ id: item.id, text: line(item.id) }))
|
.map((item) => ({ id: item.id, text: line(item.id) }))
|
||||||
})
|
})
|
||||||
|
|
||||||
const actions = { fork, revert }
|
const actions = { revert }
|
||||||
|
|
||||||
createEffect(() => {
|
createEffect(() => {
|
||||||
const sessionID = params.id
|
const sessionID = params.id
|
||||||
|
|||||||
@@ -884,7 +884,7 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp
|
|||||||
const i18n = useI18n()
|
const i18n = useI18n()
|
||||||
const [state, setState] = createStore({
|
const [state, setState] = createStore({
|
||||||
copied: false,
|
copied: false,
|
||||||
busy: undefined as "fork" | "revert" | undefined,
|
busy: false,
|
||||||
})
|
})
|
||||||
const copied = () => state.copied
|
const copied = () => state.copied
|
||||||
const busy = () => state.busy
|
const busy = () => state.busy
|
||||||
@@ -938,10 +938,10 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp
|
|||||||
setTimeout(() => setState("copied", false), 2000)
|
setTimeout(() => setState("copied", false), 2000)
|
||||||
}
|
}
|
||||||
|
|
||||||
const run = (kind: "fork" | "revert") => {
|
const revert = () => {
|
||||||
const act = kind === "fork" ? props.actions?.fork : props.actions?.revert
|
const act = props.actions?.revert
|
||||||
if (!act || busy()) return
|
if (!act || busy()) return
|
||||||
setState("busy", kind)
|
setState("busy", true)
|
||||||
void Promise.resolve()
|
void Promise.resolve()
|
||||||
.then(() =>
|
.then(() =>
|
||||||
act({
|
act({
|
||||||
@@ -949,9 +949,7 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp
|
|||||||
messageID: props.message.id,
|
messageID: props.message.id,
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.finally(() => {
|
.finally(() => setState("busy", false))
|
||||||
if (busy() === kind) setState("busy", undefined)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -1017,22 +1015,6 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp
|
|||||||
</Show>
|
</Show>
|
||||||
</span>
|
</span>
|
||||||
</Show>
|
</Show>
|
||||||
<Show when={props.actions?.fork}>
|
|
||||||
<Tooltip value={i18n.t("ui.message.forkMessage")} placement="top" gutter={4}>
|
|
||||||
<IconButton
|
|
||||||
icon="fork"
|
|
||||||
size="normal"
|
|
||||||
variant="ghost"
|
|
||||||
disabled={!!busy()}
|
|
||||||
onMouseDown={(e) => e.preventDefault()}
|
|
||||||
onClick={(event) => {
|
|
||||||
event.stopPropagation()
|
|
||||||
run("fork")
|
|
||||||
}}
|
|
||||||
aria-label={i18n.t("ui.message.forkMessage")}
|
|
||||||
/>
|
|
||||||
</Tooltip>
|
|
||||||
</Show>
|
|
||||||
<Show when={props.actions?.revert}>
|
<Show when={props.actions?.revert}>
|
||||||
<Tooltip value={i18n.t("ui.message.revertMessage")} placement="top" gutter={4}>
|
<Tooltip value={i18n.t("ui.message.revertMessage")} placement="top" gutter={4}>
|
||||||
<IconButton
|
<IconButton
|
||||||
@@ -1043,7 +1025,7 @@ export function UserMessageDisplay(props: { message: UserMessage; parts: PartTyp
|
|||||||
onMouseDown={(e) => e.preventDefault()}
|
onMouseDown={(e) => e.preventDefault()}
|
||||||
onClick={(event) => {
|
onClick={(event) => {
|
||||||
event.stopPropagation()
|
event.stopPropagation()
|
||||||
run("revert")
|
revert()
|
||||||
}}
|
}}
|
||||||
aria-label={i18n.t("ui.message.revertMessage")}
|
aria-label={i18n.t("ui.message.revertMessage")}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user