MCPcopy Create free account
hub / github.com/arctic-cli/interface / SessionReview

Function SessionReview

packages/ui/src/components/session-review.tsx:25–125  ·  view source on GitHub ↗
(props: SessionReviewProps)

Source from the content-addressed store, hash-verified

23}
24
25export const SessionReview = (props: SessionReviewProps) => {
26 const diffComponent = useDiffComponent()
27 const [store, setStore] = createStore({
28 open: props.diffs.map((d) => d.file),
29 })
30
31 const handleChange = (open: string[]) => {
32 setStore("open", open)
33 }
34
35 const handleExpandOrCollapseAll = () => {
36 if (store.open.length > 0) {
37 setStore("open", [])
38 } else {
39 setStore(
40 "open",
41 props.diffs.map((d) => d.file),
42 )
43 }
44 }
45
46 return (
47 <div
48 data-component="session-review"
49 classList={{
50 ...(props.classList ?? {}),
51 [props.classes?.root ?? ""]: !!props.classes?.root,
52 [props.class ?? ""]: !!props.class,
53 }}
54 >
55 <div
56 data-slot="session-review-header"
57 classList={{
58 [props.classes?.header ?? ""]: !!props.classes?.header,
59 }}
60 >
61 <div data-slot="session-review-title">Session changes</div>
62 <div data-slot="session-review-actions">
63 <Button size="normal" icon="chevron-grabber-vertical" onClick={handleExpandOrCollapseAll}>
64 <Switch>
65 <Match when={store.open.length > 0}>Collapse all</Match>
66 <Match when={true}>Expand all</Match>
67 </Switch>
68 </Button>
69 {props.actions}
70 </div>
71 </div>
72 <div
73 data-slot="session-review-container"
74 classList={{
75 [props.classes?.container ?? ""]: !!props.classes?.container,
76 }}
77 >
78 <Accordion multiple value={store.open} onChange={handleChange}>
79 <For each={props.diffs}>
80 {(diff) => (
81 <Accordion.Item forceMount value={diff.file} data-slot="session-review-accordion-item">
82 <StickyAccordionHeader>

Callers

nothing calls this directly

Calls 4

useDiffComponentFunction · 0.90
getDirectoryFunction · 0.90
getFilenameFunction · 0.90
checksumFunction · 0.90

Tested by

no test coverage detected