Fix build

This commit is contained in:
Gregory Schier
2023-03-29 22:15:55 -07:00
parent e954d0d7bc
commit 9b66a1d1a8
9 changed files with 54 additions and 37 deletions

View File

@@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Yaak App</title> <title>Yaak App</title>
<script src="http://localhost:8097"></script> <!-- <script src="http://localhost:8097"></script>-->
<style> <style>
body { body {
background-color: white; background-color: white;

View File

@@ -56,6 +56,7 @@ async fn migrate_db(
println!("Running migrations at {}", p.to_string_lossy()); println!("Running migrations at {}", p.to_string_lossy());
let m = Migrator::new(p).await.expect("Failed to load migrations"); let m = Migrator::new(p).await.expect("Failed to load migrations");
m.run(pool).await.expect("Failed to run migrations"); m.run(pool).await.expect("Failed to run migrations");
println!("Migrations complete");
Ok(()) Ok(())
} }
@@ -611,7 +612,8 @@ fn create_window(handle: AppHandle<Wry>, app_id: String) -> Window<Wry> {
.add_item( .add_item(
CustomMenuItem::new("toggle_sidebar".to_string(), "Toggle Sidebar") CustomMenuItem::new("toggle_sidebar".to_string(), "Toggle Sidebar")
.accelerator("CmdOrCtrl+b"), .accelerator("CmdOrCtrl+b"),
); )
.add_item(CustomMenuItem::new("new_window".to_string(), "New Window"));
if is_dev() { if is_dev() {
test_menu = test_menu test_menu = test_menu
.add_native_item(MenuItem::Separator) .add_native_item(MenuItem::Separator)
@@ -622,8 +624,7 @@ fn create_window(handle: AppHandle<Wry>, app_id: String) -> Window<Wry> {
.add_item( .add_item(
CustomMenuItem::new("toggle_devtools".to_string(), "Open Devtools") CustomMenuItem::new("toggle_devtools".to_string(), "Open Devtools")
.accelerator("CmdOrCtrl + Option + i"), .accelerator("CmdOrCtrl + Option + i"),
) );
.add_item(CustomMenuItem::new("new_window".to_string(), "New Window"));
} }
let submenu = Submenu::new("Test Menu", test_menu); let submenu = Submenu::new("Test Menu", test_menu);
@@ -631,20 +632,16 @@ fn create_window(handle: AppHandle<Wry>, app_id: String) -> Window<Wry> {
let window_num = handle.windows().len(); let window_num = handle.windows().len();
let window_id = format!("{}_{}", app_id, window_num); let window_id = format!("{}_{}", app_id, window_num);
let menu = default_menu.add_submenu(submenu); let menu = default_menu.add_submenu(submenu);
let win = tauri::WindowBuilder::new( let win = tauri::WindowBuilder::new(&handle, window_id, tauri::WindowUrl::App("".into()))
&handle, .menu(menu)
window_id, .fullscreen(false)
tauri::WindowUrl::App("workspaces".into()), .resizable(true)
) .inner_size(1100.0, 600.0)
.menu(menu) .hidden_title(true)
.fullscreen(false) .title("Yaak")
.resizable(true) .title_bar_style(TitleBarStyle::Overlay)
.inner_size(1100.0, 600.0) .build()
.hidden_title(true) .expect("failed to build window");
.title("Yaak")
.title_bar_style(TitleBarStyle::Overlay)
.build()
.expect("failed to build window");
let win2 = win.clone(); let win2 = win.clone();
win.on_menu_event(move |event| match event.menu_item_id() { win.on_menu_event(move |event| match event.menu_item_id() {

View File

@@ -11,7 +11,19 @@
"version": "0.0.2" "version": "0.0.2"
}, },
"tauri": { "tauri": {
"windows": [], "windows": [
{
"fullscreen": false,
"hiddenTitle": true,
"resizable": true,
"title": "Yaak",
"titleBarStyle": "Overlay",
"height": 600,
"width": 1100,
"minWidth": 400,
"minHeight": 400
}
],
"allowlist": { "allowlist": {
"all": false, "all": false,
"fs": { "fs": {

View File

@@ -5,6 +5,7 @@ import { invoke } from '@tauri-apps/api';
import { listen } from '@tauri-apps/api/event'; import { listen } from '@tauri-apps/api/event';
import { appWindow } from '@tauri-apps/api/window'; import { appWindow } from '@tauri-apps/api/window';
import { MotionConfig } from 'framer-motion'; import { MotionConfig } from 'framer-motion';
import { Suspense } from 'react';
import { DndProvider } from 'react-dnd'; import { DndProvider } from 'react-dnd';
import { HTML5Backend } from 'react-dnd-html5-backend'; import { HTML5Backend } from 'react-dnd-html5-backend';
import { HelmetProvider } from 'react-helmet-async'; import { HelmetProvider } from 'react-helmet-async';
@@ -128,10 +129,6 @@ await listen('send_request', async () => {
await invoke('send_request', { requestId }); await invoke('send_request', { requestId });
}); });
await listen('refresh', () => {
location.reload();
});
await listen('zoom', ({ payload: zoomDelta }: { payload: number }) => { await listen('zoom', ({ payload: zoomDelta }: { payload: number }) => {
const fontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize); const fontSize = parseFloat(window.getComputedStyle(document.documentElement).fontSize);
@@ -148,14 +145,17 @@ await listen('zoom', ({ payload: zoomDelta }: { payload: number }) => {
}); });
export function App() { export function App() {
console.log('STARTING APP');
return ( return (
<QueryClientProvider client={queryClient}> <QueryClientProvider client={queryClient}>
<MotionConfig transition={{ duration: 0.1 }}> <MotionConfig transition={{ duration: 0.1 }}>
<HelmetProvider> <HelmetProvider>
<DndProvider backend={HTML5Backend}> <DndProvider backend={HTML5Backend}>
<DialogProvider> <DialogProvider>
<AppRouter /> <Suspense>
{/*<ReactQueryDevtools initialIsOpen={false} />*/} <AppRouter />
{/*<ReactQueryDevtools initialIsOpen={false} />*/}
</Suspense>
</DialogProvider> </DialogProvider>
</DndProvider> </DndProvider>
</HelmetProvider> </HelmetProvider>

View File

@@ -1,4 +1,3 @@
import { Suspense } from 'react';
import { createBrowserRouter, Navigate, RouterProvider } from 'react-router-dom'; import { createBrowserRouter, Navigate, RouterProvider } from 'react-router-dom';
import { routePaths } from '../hooks/useRoutes'; import { routePaths } from '../hooks/useRoutes';
import { useTauriListeners } from '../hooks/useTauriListeners'; import { useTauriListeners } from '../hooks/useTauriListeners';
@@ -35,10 +34,8 @@ const router = createBrowserRouter([
]); ]);
export function AppRouter() { export function AppRouter() {
console.log('AppRouter');
useTauriListeners(); useTauriListeners();
return ( console.log('AppRouter 2');
<Suspense> return <RouterProvider router={router} />;
<RouterProvider router={router} />
</Suspense>
);
} }

View File

@@ -92,11 +92,8 @@ export function Editor({
useEffect(() => { useEffect(() => {
if (cm.current === null) return; if (cm.current === null) return;
const { view, languageCompartment } = cm.current; const { view } = cm.current;
const newDoc = defaultValue; view.dispatch({ changes: { from: 0, to: view.state.doc.length, insert: defaultValue ?? '' } });
view.dispatch({ changes: { from: 0, to: view.state.doc.length, insert: newDoc ?? '' } });
const ext = getLanguageExtension({ contentType, useTemplating, autocomplete });
view.dispatch({ effects: languageCompartment.reconfigure(ext) });
}, [forceUpdateKey]); }, [forceUpdateKey]);
// Initialize the editor when ref mounts // Initialize the editor when ref mounts

View File

@@ -1,7 +1,10 @@
import { memo } from 'react'; import { memo } from 'react';
import * as editor from './Editor';
export type { EditorProps } from './Editor'; export type { EditorProps } from './Editor';
const editor = await import('./Editor'); // TODO: Figure out why code-splitting breaks production build from
// showing any content
// const editor = await import('./Editor');
export const Editor = memo(editor.Editor); export const Editor = memo(editor.Editor);
export const graphql = editor.graphql; export const graphql = editor.graphql;

View File

@@ -1,4 +1,5 @@
import { useQueryClient } from '@tanstack/react-query'; import { useQueryClient } from '@tanstack/react-query';
import { listen } from '@tauri-apps/api/event';
import { appWindow } from '@tauri-apps/api/window'; import { appWindow } from '@tauri-apps/api/window';
import { useEffect } from 'react'; import { useEffect } from 'react';
import { debounce } from '../lib/debounce'; import { debounce } from '../lib/debounce';
@@ -27,6 +28,13 @@ export function useTauriListeners() {
else unsubFns.push(unsub); else unsubFns.push(unsub);
}); });
listen('refresh', () => {
location.reload();
}).then((unsub) => {
if (unmounted) unsub();
else unsubFns.push(unsub);
});
appWindow appWindow
.listen( .listen(
'updated_request', 'updated_request',

View File

@@ -1,3 +1,4 @@
console.log('FIRST 0');
import { StrictMode } from 'react'; import { StrictMode } from 'react';
import ReactDOM from 'react-dom/client'; import ReactDOM from 'react-dom/client';
import { App } from './components/App'; import { App } from './components/App';
@@ -5,7 +6,9 @@ import { getKeyValue } from './lib/keyValueStore';
import { getPreferredAppearance, setAppearance } from './lib/theme/window'; import { getPreferredAppearance, setAppearance } from './lib/theme/window';
import './main.css'; import './main.css';
console.log('FIRST');
setAppearance(await getKeyValue({ key: 'appearance', fallback: getPreferredAppearance() })); setAppearance(await getKeyValue({ key: 'appearance', fallback: getPreferredAppearance() }));
console.log('SECOND');
// root holds our app's root DOM Element: // root holds our app's root DOM Element:
ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(