chore: removing little-used session sharing feature (#4249)
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
import { useEffect, useRef, useState } from 'react';
|
||||
import { IpcRendererEvent } from 'electron';
|
||||
import { HashRouter, Routes, Route, useNavigate, useLocation } from 'react-router-dom';
|
||||
import { openSharedSessionFromDeepLink, type SessionLinksViewOptions } from './sessionLinks';
|
||||
import { type SharedSessionDetails } from './sharedSessions';
|
||||
import { ErrorUI } from './components/ErrorBoundary';
|
||||
import { ConfirmationModal } from './components/ui/ConfirmationModal';
|
||||
import { ToastContainer } from 'react-toastify';
|
||||
@@ -17,7 +15,6 @@ import Hub from './components/hub';
|
||||
import Pair from './components/pair';
|
||||
import SettingsView, { SettingsViewOptions } from './components/settings/SettingsView';
|
||||
import SessionsView from './components/sessions/SessionsView';
|
||||
import SharedSessionView from './components/sessions/SharedSessionView';
|
||||
import SchedulesView from './components/schedule/SchedulesView';
|
||||
import ProviderSettings from './components/settings/providers/ProviderSettingsPage';
|
||||
import { useChat } from './hooks/useChat';
|
||||
@@ -320,48 +317,6 @@ const WelcomeRoute = () => {
|
||||
);
|
||||
};
|
||||
|
||||
// Wrapper component for SharedSessionRoute to access parent state
|
||||
const SharedSessionRouteWrapper = ({
|
||||
isLoadingSharedSession,
|
||||
setIsLoadingSharedSession,
|
||||
sharedSessionError,
|
||||
}: {
|
||||
isLoadingSharedSession: boolean;
|
||||
setIsLoadingSharedSession: (loading: boolean) => void;
|
||||
sharedSessionError: string | null;
|
||||
}) => {
|
||||
const location = useLocation();
|
||||
const navigate = useNavigate();
|
||||
const setView = createNavigationHandler(navigate);
|
||||
|
||||
const historyState = window.history.state;
|
||||
const sessionDetails = (location.state?.sessionDetails ||
|
||||
historyState?.sessionDetails) as SharedSessionDetails | null;
|
||||
const error = location.state?.error || historyState?.error || sharedSessionError;
|
||||
const shareToken = location.state?.shareToken || historyState?.shareToken;
|
||||
const baseUrl = location.state?.baseUrl || historyState?.baseUrl;
|
||||
|
||||
return (
|
||||
<SharedSessionView
|
||||
session={sessionDetails}
|
||||
isLoading={isLoadingSharedSession}
|
||||
error={error}
|
||||
onRetry={async () => {
|
||||
if (shareToken && baseUrl) {
|
||||
setIsLoadingSharedSession(true);
|
||||
try {
|
||||
await openSharedSessionFromDeepLink(`goose://sessions/${shareToken}`, setView, baseUrl);
|
||||
} catch (error) {
|
||||
console.error('Failed to retry loading shared session:', error);
|
||||
} finally {
|
||||
setIsLoadingSharedSession(false);
|
||||
}
|
||||
}
|
||||
}}
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
const ExtensionsRoute = () => {
|
||||
const navigate = useNavigate();
|
||||
const location = useLocation();
|
||||
@@ -404,8 +359,6 @@ export default function App() {
|
||||
const [extensionConfirmTitle, setExtensionConfirmTitle] = useState<string>('');
|
||||
const [isLoadingSession, setIsLoadingSession] = useState(false);
|
||||
const [isGoosehintsModalOpen, setIsGoosehintsModalOpen] = useState(false);
|
||||
const [isLoadingSharedSession, setIsLoadingSharedSession] = useState(false);
|
||||
const [sharedSessionError, setSharedSessionError] = useState<string | null>(null);
|
||||
|
||||
// Add separate state for pair chat to maintain its own conversation
|
||||
const [pairChat, setPairChat] = useState<ChatType>({
|
||||
@@ -452,9 +405,6 @@ export default function App() {
|
||||
case 'ConfigureProviders':
|
||||
window.location.hash = '#/configure-providers';
|
||||
break;
|
||||
case 'sharedSession':
|
||||
window.location.hash = '#/shared-session';
|
||||
break;
|
||||
case 'recipeEditor':
|
||||
window.location.hash = '#/recipe-editor';
|
||||
break;
|
||||
@@ -541,44 +491,6 @@ export default function App() {
|
||||
}
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
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,
|
||||
(_view: View, _options?: SessionLinksViewOptions) => {
|
||||
// Navigate to shared session view with the session data
|
||||
window.location.hash = '#/shared-session';
|
||||
if (_options) {
|
||||
window.history.replaceState(_options, '', '#/shared-session');
|
||||
}
|
||||
}
|
||||
);
|
||||
} catch (error) {
|
||||
console.error('Unexpected error opening shared session:', error);
|
||||
// Navigate to shared session view with error
|
||||
window.location.hash = '#/shared-session';
|
||||
const shareToken = link.replace('goose://sessions/', '');
|
||||
const options = {
|
||||
sessionDetails: null,
|
||||
error: error instanceof Error ? error.message : 'Unknown error',
|
||||
shareToken,
|
||||
};
|
||||
window.history.replaceState(options, '', '#/shared-session');
|
||||
} finally {
|
||||
setIsLoadingSharedSession(false);
|
||||
}
|
||||
};
|
||||
window.electron.on('open-shared-session', handleOpenSharedSession);
|
||||
return () => {
|
||||
window.electron.off('open-shared-session', handleOpenSharedSession);
|
||||
};
|
||||
}, []);
|
||||
|
||||
// Handle recipe decode events from main process
|
||||
useEffect(() => {
|
||||
const handleLoadRecipeDeeplink = (_event: IpcRendererEvent, ...args: unknown[]) => {
|
||||
@@ -1012,18 +924,6 @@ export default function App() {
|
||||
</ProviderGuard>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="shared-session"
|
||||
element={
|
||||
<ProviderGuard>
|
||||
<SharedSessionRouteWrapper
|
||||
isLoadingSharedSession={isLoadingSharedSession}
|
||||
setIsLoadingSharedSession={setIsLoadingSharedSession}
|
||||
sharedSessionError={sharedSessionError}
|
||||
/>
|
||||
</ProviderGuard>
|
||||
}
|
||||
/>
|
||||
<Route
|
||||
path="permission"
|
||||
element={
|
||||
|
||||
Reference in New Issue
Block a user