Remove updated_by, remember last location

This commit is contained in:
Gregory Schier
2023-03-30 08:11:51 -07:00
parent 904d20b9b8
commit 7fcf709efe
13 changed files with 286 additions and 346 deletions

View File

@@ -14,6 +14,7 @@ import { keyValueQueryKey } from '../hooks/useKeyValue';
import { requestsQueryKey } from '../hooks/useRequests';
import { responsesQueryKey } from '../hooks/useResponses';
import { routePaths } from '../hooks/useRoutes';
import { UPDATE_DEBOUNCE_MILLIS } from '../hooks/useTauriListeners';
import { workspacesQueryKey } from '../hooks/useWorkspaces';
import { DEFAULT_FONT_SIZE } from '../lib/constants';
import { debounce } from '../lib/debounce';
@@ -22,8 +23,6 @@ import type { HttpRequest, HttpResponse, KeyValue, Workspace } from '../lib/mode
import { AppRouter } from './AppRouter';
import { DialogProvider } from './DialogContext';
const UPDATE_DEBOUNCE_MILLIS = 500;
const queryClient = new QueryClient({
defaultOptions: {
queries: {
@@ -145,7 +144,6 @@ await listen('zoom', ({ payload: zoomDelta }: { payload: number }) => {
});
export function App() {
console.log('STARTING APP');
return (
<QueryClientProvider client={queryClient}>
<MotionConfig transition={{ duration: 0.1 }}>

View File

@@ -1,6 +1,14 @@
import { createBrowserRouter, Navigate, RouterProvider } from 'react-router-dom';
import { useEffect } from 'react';
import {
createBrowserRouter,
Navigate,
Outlet,
RouterProvider,
useLocation,
} from 'react-router-dom';
import { routePaths } from '../hooks/useRoutes';
import { useTauriListeners } from '../hooks/useTauriListeners';
import { setLastLocation } from '../lib/lastLocation';
import RouteError from './RouteError';
import Workspace from './Workspace';
import Workspaces from './Workspaces';
@@ -9,6 +17,7 @@ const router = createBrowserRouter([
{
path: '/',
errorElement: <RouteError />,
element: <RouterRoot />,
children: [
{
path: '/',
@@ -34,8 +43,14 @@ const router = createBrowserRouter([
]);
export function AppRouter() {
console.log('AppRouter');
useTauriListeners();
console.log('AppRouter 2');
return <RouterProvider router={router} />;
}
function RouterRoot() {
const { pathname } = useLocation();
useEffect(() => {
setLastLocation(pathname).catch(console.error);
}, [pathname]);
return <Outlet />;
}

View File

@@ -1,18 +1,18 @@
import { Navigate } from 'react-router-dom';
import { useKeyValue } from '../hooks/useKeyValue';
import { useRoutes } from '../hooks/useRoutes';
import { useWorkspaces } from '../hooks/useWorkspaces';
import { Button } from './core/Button';
import { Heading } from './core/Heading';
import { VStack } from './core/Stacks';
export default function Workspaces() {
const lastWorkspace = useKeyValue<string | null>({ key: 'last_workspace', defaultValue: null });
const routes = useRoutes();
const workspaces = useWorkspaces();
return (
<VStack as="ul" className="p-12" space={1}>
<Heading>Workspaces</Heading>
{workspaces.map((w) => (
<Button key={w.id} color="gray" to={`/workspaces/${w.id}`}>
{w.name}
</Button>
))}
</VStack>
);
const workspace = workspaces[0];
if (workspace === undefined) {
return <Heading>There are no workspaces</Heading>;
}
return <Navigate to={routes.paths.workspace({ workspaceId: workspace.id })} />;
}