Skip to content

Commit aacf95c

Browse files
committed
refac
1 parent 008cd8e commit aacf95c

3 files changed

Lines changed: 35 additions & 22 deletions

File tree

src/lib/components/chat/Chat.svelte

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1226,31 +1226,39 @@
12261226
showControls.set(true);
12271227
}
12281228
1229-
// Consume one-shot desktop event (e.g. Spotlight query + attachments)
1229+
// Consume one-shot desktop event (e.g. Spotlight query, call shortcut)
12301230
if ($desktopEvent) {
1231-
const { query, files: eventFiles } = $desktopEvent;
1231+
const event = $desktopEvent;
12321232
desktopEvent.set(null);
12331233
1234-
// Attach screenshot images from desktop (e.g. Spotlight region capture)
1235-
if (eventFiles?.length) {
1236-
for (const ef of eventFiles) {
1237-
files = [
1238-
...files,
1239-
{
1240-
type: 'image',
1241-
url: ef.dataUrl,
1242-
name: ef.name
1243-
}
1244-
];
1234+
if (event.type === 'call') {
1235+
showCallOverlay.set(true);
1236+
showControls.set(true);
1237+
} else if (event.type === 'query') {
1238+
const query = event.data?.query;
1239+
const eventFiles = event.data?.files;
1240+
1241+
// Attach screenshot images from desktop (e.g. Spotlight region capture)
1242+
if (eventFiles?.length) {
1243+
for (const ef of eventFiles) {
1244+
files = [
1245+
...files,
1246+
{
1247+
type: 'image',
1248+
url: ef.dataUrl,
1249+
name: ef.name
1250+
}
1251+
];
1252+
}
12451253
}
1246-
}
12471254
1248-
if (query || eventFiles?.length) {
1249-
if (query) {
1250-
messageInput?.setText(query);
1255+
if (query || eventFiles?.length) {
1256+
if (query) {
1257+
messageInput?.setText(query);
1258+
}
1259+
await tick();
1260+
submitHandler(query || '');
12511261
}
1252-
await tick();
1253-
submitHandler(query || '');
12541262
}
12551263
} else if ($page.url.searchParams.get('q')) {
12561264
const q = $page.url.searchParams.get('q') ?? '';

src/lib/stores/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ export const temporaryChatEnabled = writable(false);
116116
// Set by +layout.svelte, consumed and cleared by Chat.svelte.
117117
export type DesktopEventFile = { name: string; mimeType: string; dataUrl: string };
118118
export type DesktopEvent = {
119-
query?: string;
120-
files?: DesktopEventFile[];
119+
type: string;
120+
data?: any;
121121
};
122122
export const desktopEvent: Writable<DesktopEvent | null> = writable(null);
123123
export const scrollPaginationEnabled = writable(false);

src/routes/+layout.svelte

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,12 @@
712712
return;
713713
}
714714
if (event.type === 'query' && (event.data?.query || event.data?.files?.length)) {
715-
desktopEvent.set({ query: event.data.query, files: event.data.files });
715+
desktopEvent.set(event);
716+
await goto('/');
717+
return;
718+
}
719+
if (event.type === 'call') {
720+
desktopEvent.set(event);
716721
await goto('/');
717722
return;
718723
}

0 commit comments

Comments
 (0)