7
7
import { Editor , JSONContent } from "@tiptap/react" ;
8
8
import { InputModifiers , RangeInFileWithContents , ToolCallState } from "core" ;
9
9
import { streamResponse } from "core/llm/stream" ;
10
+ import { stripImages } from "core/util/messageContent" ;
10
11
import { usePostHog } from "posthog-js/react" ;
11
12
import { useCallback , useContext , useEffect , useRef , useState } from "react" ;
12
13
import { ErrorBoundary } from "react-error-boundary" ;
@@ -19,59 +20,57 @@ import {
19
20
vscBackground ,
20
21
} from "../../components" ;
21
22
import { ChatScrollAnchor } from "../../components/ChatScrollAnchor" ;
23
+ import CodeToEditCard from "../../components/CodeToEditCard" ;
24
+ import FeedbackDialog from "../../components/dialogs/FeedbackDialog" ;
22
25
import { useFindWidget } from "../../components/find/FindWidget" ;
23
26
import TimelineItem from "../../components/gui/TimelineItem" ;
24
27
import ChatIndexingPeeks from "../../components/indexing/ChatIndexingPeeks" ;
25
28
import ContinueInputBox from "../../components/mainInput/ContinueInputBox" ;
26
29
import { NewSessionButton } from "../../components/mainInput/NewSessionButton" ;
30
+ import resolveEditorContent from "../../components/mainInput/resolveInput" ;
27
31
import { TutorialCard } from "../../components/mainInput/TutorialCard" ;
28
32
import {
29
33
OnboardingCard ,
30
34
useOnboardingCard ,
31
35
} from "../../components/OnboardingCard" ;
36
+ import PageHeader from "../../components/PageHeader" ;
32
37
import StepContainer from "../../components/StepContainer" ;
38
+ import AcceptRejectAllButtons from "../../components/StepContainer/AcceptRejectAllButtons" ;
33
39
import { IdeMessengerContext } from "../../context/IdeMessenger" ;
34
40
import useHistory from "../../hooks/useHistory" ;
35
41
import { useTutorialCard } from "../../hooks/useTutorialCard" ;
36
42
import { useWebviewListener } from "../../hooks/useWebviewListener" ;
43
+ import { useAppDispatch , useAppSelector } from "../../redux/hooks" ;
37
44
import { selectCurrentToolCall } from "../../redux/selectors/selectCurrentToolCall" ;
45
+ import { selectDefaultModel } from "../../redux/slices/configSlice" ;
46
+ import { submitEdit } from "../../redux/slices/editModeState" ;
38
47
import {
39
48
clearLastEmptyResponse ,
40
49
newSession ,
41
50
selectIsInEditMode ,
42
51
selectIsSingleRangeEditOrInsertion ,
43
52
setInactive ,
44
53
} from "../../redux/slices/sessionSlice" ;
54
+ import {
55
+ setDialogEntryOn ,
56
+ setDialogMessage ,
57
+ setShowDialog ,
58
+ } from "../../redux/slices/uiSlice" ;
59
+ import { RootState } from "../../redux/store" ;
60
+ import { exitEditMode } from "../../redux/thunks/exitEditMode" ;
45
61
import { streamResponseThunk } from "../../redux/thunks/streamResponse" ;
46
62
import {
47
63
getFontSize ,
48
64
getMetaKeyLabel ,
49
65
isMetaEquivalentKeyPressed ,
50
66
} from "../../util" ;
51
67
import { FREE_TRIAL_LIMIT_REQUESTS } from "../../util/freeTrial" ;
68
+ import getMultifileEditPrompt from "../../util/getMultifileEditPrompt" ;
52
69
import { getLocalStorage , setLocalStorage } from "../../util/localStorage" ;
53
70
import ConfigErrorIndicator from "./ConfigError" ;
54
71
import { ToolCallDiv } from "./ToolCallDiv" ;
55
72
import { ToolCallButtons } from "./ToolCallDiv/ToolCallButtonsDiv" ;
56
73
import ToolOutput from "./ToolCallDiv/ToolOutput" ;
57
- import { useAppDispatch , useAppSelector } from "../../redux/hooks" ;
58
- import { selectDefaultModel } from "../../redux/slices/configSlice" ;
59
- import {
60
- setDialogMessage ,
61
- setDialogEntryOn ,
62
- setShowDialog ,
63
- } from "../../redux/slices/uiSlice" ;
64
- import { RootState } from "../../redux/store" ;
65
- import FeedbackDialog from "../../components/dialogs/FeedbackDialog" ;
66
- import getMultifileEditPrompt from "../../util/getMultifileEditPrompt" ;
67
- import { submitEdit } from "../../redux/slices/editModeState" ;
68
- import { stripImages } from "core/util/messageContent" ;
69
- import resolveEditorContent from "../../components/mainInput/resolveInput" ;
70
- import AcceptRejectAllButtons from "../../components/StepContainer/AcceptRejectAllButtons" ;
71
- import CodeToEditCard from "../../components/CodeToEditCard" ;
72
- import { exitEditMode } from "../../redux/thunks/exitEditMode" ;
73
- import PageHeader from "../../components/PageHeader" ;
74
- import Spinner from "../../components/gui/Spinner" ;
75
74
76
75
const StopButton = styled . div `
77
76
background-color: ${ vscBackground } ;
@@ -496,19 +495,23 @@ export function Chat() {
496
495
} }
497
496
>
498
497
< div className = "flex flex-row items-center justify-between pb-1 pl-0.5 pr-2" >
499
- { history . length === 0 && getLastSessionId ( ) && ! isInEditMode && (
500
- < NewSessionButton
501
- onClick = { ( ) =>
502
- loadLastSession ( ) . catch ( ( e ) =>
503
- console . error ( `Failed to load last session: ${ e } ` ) ,
504
- )
505
- }
506
- className = "xs:inline flex hidden items-center gap-2"
507
- >
508
- < ArrowLeftIcon className = "h-3 w-3" />
509
- Last Session
510
- </ NewSessionButton >
511
- ) }
498
+ < div className = "xs:inline hidden" >
499
+ { history . length === 0 && getLastSessionId ( ) && ! isInEditMode && (
500
+ < div className = "xs:inline hidden" >
501
+ < NewSessionButton
502
+ onClick = { ( ) =>
503
+ loadLastSession ( ) . catch ( ( e ) =>
504
+ console . error ( `Failed to load last session: ${ e } ` ) ,
505
+ )
506
+ }
507
+ className = "flex items-center gap-2"
508
+ >
509
+ < ArrowLeftIcon className = "h-3 w-3" />
510
+ Last Session
511
+ </ NewSessionButton >
512
+ </ div >
513
+ ) }
514
+ </ div >
512
515
< ConfigErrorIndicator />
513
516
</ div >
514
517
0 commit comments