mirror of
https://github.com/aljazceru/goose.git
synced 2025-12-20 15:44:25 +01:00
Fix remaining typescript errors (#2741)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { IpcRendererEvent } from 'electron';
|
||||
import { openSharedSessionFromDeepLink } from './sessionLinks';
|
||||
import { openSharedSessionFromDeepLink, type SessionLinksViewOptions } from './sessionLinks';
|
||||
import { type SharedSessionDetails } from './sharedSessions';
|
||||
import { initializeSystem } from './utils/providerUtils';
|
||||
import { ErrorUI } from './components/ErrorBoundary';
|
||||
import { ConfirmationModal } from './components/ui/ConfirmationModal';
|
||||
@@ -9,6 +10,7 @@ import { toastService } from './toasts';
|
||||
import { extractExtensionName } from './components/settings/extensions/utils';
|
||||
import { GoosehintsModal } from './components/GoosehintsModal';
|
||||
import { type ExtensionConfig } from './extensions';
|
||||
import { type Recipe } from './recipe';
|
||||
|
||||
import ChatView from './components/ChatView';
|
||||
import SuspenseLoader from './suspense-loader';
|
||||
@@ -52,20 +54,20 @@ export type ViewOptions = {
|
||||
extensionId?: string;
|
||||
showEnvVars?: boolean;
|
||||
deepLinkConfig?: ExtensionConfig;
|
||||
|
||||
// Session view options
|
||||
|
||||
// Session view options
|
||||
resumedSession?: SessionDetails;
|
||||
sessionDetails?: SessionDetails;
|
||||
error?: string;
|
||||
shareToken?: string;
|
||||
baseUrl?: string;
|
||||
|
||||
|
||||
// Recipe editor options
|
||||
config?: unknown;
|
||||
|
||||
|
||||
// Permission view options
|
||||
parentView?: View;
|
||||
|
||||
|
||||
// Generic options
|
||||
[key: string]: unknown;
|
||||
};
|
||||
@@ -237,12 +239,18 @@ export default function App() {
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
const handleOpenSharedSession = async (_event: IpcRendererEvent, link: string) => {
|
||||
const handleOpenSharedSession = async (_event: IpcRendererEvent, ...args: unknown[]) => {
|
||||
const link = args[0] as string;
|
||||
window.electron.logInfo(`Opening shared session from deep link ${link}`);
|
||||
setIsLoadingSharedSession(true);
|
||||
setSharedSessionError(null);
|
||||
try {
|
||||
await openSharedSessionFromDeepLink(link, setView);
|
||||
await openSharedSessionFromDeepLink(
|
||||
link,
|
||||
(view: View, options?: SessionLinksViewOptions) => {
|
||||
setView(view, options as ViewOptions);
|
||||
}
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Unexpected error opening shared session:', error);
|
||||
setView('sessions');
|
||||
@@ -279,7 +287,8 @@ export default function App() {
|
||||
|
||||
useEffect(() => {
|
||||
console.log('Setting up fatal error handler');
|
||||
const handleFatalError = (_event: IpcRendererEvent, errorMessage: string) => {
|
||||
const handleFatalError = (_event: IpcRendererEvent, ...args: unknown[]) => {
|
||||
const errorMessage = args[0] as string;
|
||||
console.error('Encountered a fatal error: ', errorMessage);
|
||||
console.error('Current view:', view);
|
||||
console.error('Is loading session:', isLoadingSession);
|
||||
@@ -293,7 +302,8 @@ export default function App() {
|
||||
|
||||
useEffect(() => {
|
||||
console.log('Setting up view change handler');
|
||||
const handleSetView = (_event: IpcRendererEvent, newView: View) => {
|
||||
const handleSetView = (_event: IpcRendererEvent, ...args: unknown[]) => {
|
||||
const newView = args[0] as View;
|
||||
console.log(`Received view change request to: ${newView}`);
|
||||
setView(newView);
|
||||
};
|
||||
@@ -328,7 +338,8 @@ export default function App() {
|
||||
|
||||
useEffect(() => {
|
||||
console.log('Setting up extension handler');
|
||||
const handleAddExtension = async (_event: IpcRendererEvent, link: string) => {
|
||||
const handleAddExtension = async (_event: IpcRendererEvent, ...args: unknown[]) => {
|
||||
const link = args[0] as string;
|
||||
try {
|
||||
console.log(`Received add-extension event with link: ${link}`);
|
||||
const command = extractCommand(link);
|
||||
@@ -401,7 +412,7 @@ export default function App() {
|
||||
}, [STRICT_ALLOWLIST]);
|
||||
|
||||
useEffect(() => {
|
||||
const handleFocusInput = (_event: IpcRendererEvent) => {
|
||||
const handleFocusInput = (_event: IpcRendererEvent, ..._args: unknown[]) => {
|
||||
const inputField = document.querySelector('input[type="text"], textarea') as HTMLInputElement;
|
||||
if (inputField) {
|
||||
inputField.focus();
|
||||
@@ -418,7 +429,9 @@ export default function App() {
|
||||
console.log(`Confirming installation of extension from: ${pendingLink}`);
|
||||
setModalVisible(false);
|
||||
try {
|
||||
await addExtensionFromDeepLinkV2(pendingLink, addExtension, setView);
|
||||
await addExtensionFromDeepLinkV2(pendingLink, addExtension, (view: string, options) => {
|
||||
setView(view as View, options as ViewOptions);
|
||||
});
|
||||
console.log('Extension installation successful');
|
||||
} catch (error) {
|
||||
console.error('Failed to add extension:', error);
|
||||
@@ -522,7 +535,9 @@ export default function App() {
|
||||
{view === 'schedules' && <SchedulesView onClose={() => setView('chat')} />}
|
||||
{view === 'sharedSession' && (
|
||||
<SharedSessionView
|
||||
session={viewOptions?.sessionDetails}
|
||||
session={
|
||||
(viewOptions?.sessionDetails as unknown as SharedSessionDetails | null) || null
|
||||
}
|
||||
isLoading={isLoadingSharedSession}
|
||||
error={viewOptions?.error || sharedSessionError}
|
||||
onBack={() => setView('sessions')}
|
||||
@@ -532,7 +547,9 @@ export default function App() {
|
||||
try {
|
||||
await openSharedSessionFromDeepLink(
|
||||
`goose://sessions/${viewOptions.shareToken}`,
|
||||
setView,
|
||||
(view: View, options?: SessionLinksViewOptions) => {
|
||||
setView(view, options as ViewOptions);
|
||||
},
|
||||
viewOptions.baseUrl
|
||||
);
|
||||
} catch (error) {
|
||||
@@ -546,7 +563,7 @@ export default function App() {
|
||||
)}
|
||||
{view === 'recipeEditor' && (
|
||||
<RecipeEditor
|
||||
config={viewOptions?.config || window.electron.getConfig().recipeConfig}
|
||||
config={(viewOptions?.config as Recipe) || window.electron.getConfig().recipeConfig}
|
||||
/>
|
||||
)}
|
||||
{view === 'permission' && (
|
||||
|
||||
Reference in New Issue
Block a user