chore: cleanup

This commit is contained in:
Adam 2025-12-15 10:18:55 -06:00
parent 8ce0966987
commit ed96ae9d45
No known key found for this signature in database
GPG key ID: 9CB48779AF150E75
4 changed files with 2 additions and 19 deletions

View file

@ -414,7 +414,6 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
const rawText = rawParts.map((p) => ("content" in p ? p.content : "")).join("")
const atMatch = rawText.substring(0, cursorPosition).match(/@(\S*)$/)
// Slash commands only trigger when / is at the start of input
const slashMatch = rawText.match(/^\/(\S*)$/)
if (atMatch) {
@ -675,7 +674,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
if (text.startsWith("/")) {
const [cmdName, ...args] = text.split(" ")
const commandName = cmdName.slice(1) // Remove leading "/"
const commandName = cmdName.slice(1)
const customCommand = sync.data.command.find((c) => c.name === commandName)
if (customCommand) {
sdk.client.session.command({

View file

@ -100,7 +100,6 @@ export default function Layout(props: ParentProps) {
const currentDirectory = params.dir ? base64Decode(params.dir) : undefined
const projectIndex = currentDirectory ? projects.findIndex((p) => p.worktree === currentDirectory) : -1
// If we're not in any project, navigate to the first/last project based on direction
if (projectIndex === -1) {
const targetProject = offset > 0 ? projects[0] : projects[projects.length - 1]
if (targetProject) navigateToProject(targetProject.worktree)
@ -110,16 +109,13 @@ export default function Layout(props: ParentProps) {
const sessions = currentSessions()
const sessionIndex = params.id ? sessions.findIndex((s) => s.id === params.id) : -1
// Calculate target index within current project
let targetIndex: number
if (sessionIndex === -1) {
// Not on a session - go to first session for "next", last session for "prev"
targetIndex = offset > 0 ? 0 : sessions.length - 1
} else {
targetIndex = sessionIndex + offset
}
// If target is within bounds, navigate to that session
if (targetIndex >= 0 && targetIndex < sessions.length) {
const session = sessions[targetIndex]
navigateToSession(session)
@ -127,19 +123,16 @@ export default function Layout(props: ParentProps) {
return
}
// Navigate to adjacent project
const nextProjectIndex = projectIndex + (offset > 0 ? 1 : -1)
const nextProject = projects[nextProjectIndex]
if (!nextProject) return
const nextProjectSessions = flattenSessions(globalSync.child(nextProject.worktree)[0].session ?? [])
if (nextProjectSessions.length === 0) {
// Navigate to the project's new session page if no sessions
navigateToProject(nextProject.worktree)
return
}
// If going down (offset > 0), go to first session; if going up (offset < 0), go to last session
const targetSession = offset > 0 ? nextProjectSessions[0] : nextProjectSessions[nextProjectSessions.length - 1]
navigate(`/${base64Encode(nextProject.worktree)}/session/${targetSession.id}`)
queueMicrotask(() => scrollToSession(targetSession.id))
@ -149,7 +142,6 @@ export default function Layout(props: ParentProps) {
const [store, setStore] = globalSync.child(session.directory)
const sessions = store.session ?? []
const index = sessions.findIndex((s) => s.id === session.id)
// Get next session (prefer next, then prev) before removing
const nextSession = sessions[index + 1] ?? sessions[index - 1]
await globalSDK.client.session.update({

View file

@ -145,14 +145,10 @@ export default function Page() {
}
})
// Auto-navigate to new messages when they're added
// This handles the case after undo + submit where we want to see the new message
// We track the last message ID and only navigate when a NEW message is added (ID increases)
createEffect(
on(
() => visibleUserMessages().at(-1)?.id,
(lastId, prevLastId) => {
// Only navigate if a new message was added (lastId is greater/newer than previous)
if (lastId && prevLastId && lastId > prevLastId) {
setMessageStore("messageId", undefined)
}
@ -321,8 +317,7 @@ export default function Page() {
])
const handleKeyDown = (event: KeyboardEvent) => {
// @ts-expect-error
if (document.activeElement?.dataset?.component === "terminal") return
if ((document.activeElement as HTMLElement)?.dataset?.component === "terminal") return
if (dialog.stack.length > 0) return
if (event.key === "PageUp" || event.key === "PageDown") {

View file

@ -64,9 +64,6 @@ export function SessionTurn(
if (!scrollRef) return
if (state.autoScrolling) return
const { scrollTop, scrollHeight, clientHeight } = scrollRef
// prevents scroll loops - only update scrollY if we have meaningful scroll room
// the gap clamp shrinks by 0.48px per pixel scrolled, hitting min at ~71px scroll
// we need at least that much scroll headroom beyond the current scroll position
const scrollRoom = scrollHeight - clientHeight
if (scrollRoom > 100) {
setState("scrollY", scrollTop)