Fix build

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -92,11 +92,8 @@ export function Editor({
useEffect(() => {
if (cm.current === null) return;
const { view, languageCompartment } = cm.current;
const newDoc = 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) });
const { view } = cm.current;
view.dispatch({ changes: { from: 0, to: view.state.doc.length, insert: defaultValue ?? '' } });
}, [forceUpdateKey]);
// Initialize the editor when ref mounts

View File

@@ -1,7 +1,10 @@
import { memo } from 'react';
import * as editor 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 graphql = editor.graphql;

View File

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

View File

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