From af9d4350864f0b735454f0f66831425efd64a5cb Mon Sep 17 00:00:00 2001 From: Oscar Beaumont Date: Sat, 9 Apr 2022 02:19:27 +0800 Subject: [PATCH] fix: react-query working in production builds + fix Linux compilation issue --- Cargo.lock | Bin 221614 -> 222986 bytes apps/desktop/package.json | 74 +++++++++--------- apps/desktop/src-tauri/src/main.rs | 13 +-- apps/desktop/src/App.tsx | 24 +++++- .../src/components/primitive/Button.tsx | 4 +- apps/desktop/src/index.tsx | 8 +- core/src/lib.rs | 1 + package.json | 4 +- packages/client/lib/ClientProvider.tsx | 11 +++ packages/client/lib/index.ts | 1 + packages/client/package.json | 16 ++-- packages/client/tsconfig.json | 13 +-- packages/config/package.json | 6 +- packages/ui/package.json | 12 +-- pnpm-lock.yaml | Bin 145821 -> 145100 bytes 15 files changed, 111 insertions(+), 76 deletions(-) create mode 100644 packages/client/lib/ClientProvider.tsx diff --git a/Cargo.lock b/Cargo.lock index 4d851a33855ca7e670e00ef095772c2515bd27c8..752424b15b8129d876224f111e303607ef111311 100644 GIT binary patch delta 5011 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 QvE|j~cK&C3|FQPJ0qJ_@`2YX_ delta 4429 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 Dvbi!b diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 09abe2252..6c3c84425 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -5,18 +5,18 @@ "license": "MIT", "private": true, "devDependencies": { - "@tauri-apps/cli": "^1.0.0-beta.6", + "@tauri-apps/cli": "^1.0.0-rc.8", "@types/babel-core": "^6.25.7", "@types/byte-size": "^8.1.0", - "@types/react": "^17.0.18", - "@types/react-dom": "^17.0.9", - "@types/react-router-dom": "^5.3.1", + "@types/react": "^18.0.0", + "@types/react-dom": "^18.0.0", + "@types/react-router-dom": "^5.3.3", "@types/react-virtualized-auto-sizer": "^1.0.1", "@types/react-window": "^1.8.5", - "@types/tailwindcss": "^2.2.1", - "concurrently": "^6.2.1", - "prettier": "^2.3.2", - "typescript": "^4.3.5" + "@types/tailwindcss": "^3.0.10", + "concurrently": "^7.1.0", + "prettier": "^2.6.2", + "typescript": "^4.6.3" }, "scripts": { "vite": "vite", @@ -28,46 +28,46 @@ "react-virtualized": "patch:react-virtualized@9.22.3#./path/to/react-virtualized-9.22.3.patch" }, "dependencies": { - "@apollo/client": "^3.4.7", - "@headlessui/react": "^1.4.0", - "@heroicons/react": "^1.0.4", - "@radix-ui/react-dialog": "^0.1.5", + "@apollo/client": "^3.5.10", + "@headlessui/react": "^1.5.0", + "@heroicons/react": "^1.0.6", + "@radix-ui/react-dialog": "^0.1.7", "@radix-ui/react-slider": "^0.1.4", - "@sd/core": "*", - "@sd/client": "*", - "@sd/ui": "*", - "@tauri-apps/api": "^1.0.0-beta.5", + "@sd/client": "workspace:*", + "@sd/core": "workspace:*", + "@sd/ui": "workspace:*", + "@tauri-apps/api": "^1.0.0-rc.3", "@types/pretty-bytes": "^5.2.0", - "@types/react-table": "^7.7.6", - "@types/react-virtualized": "^9.21.14", + "@types/react-table": "^7.7.10", + "@types/react-virtualized": "^9.21.21", "@vitejs/plugin-react-refresh": "^1.3.6", - "autoprefixer": "^9", + "autoprefixer": "^10.4.4", "byte-size": "^8.1.0", "clsx": "^1.1.1", "immer": "^9.0.12", - "jotai": "^1.6.0", - "moment": "^2.29.1", - "phosphor-react": "^1.3.1", - "pretty-bytes": "^5.6.0", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "react-dropzone": "^11.3.4", - "react-error-boundary": "^3.1.3", + "jotai": "^1.6.2", + "moment": "^2.29.2", + "phosphor-react": "^1.4.1", + "pretty-bytes": "^6.0.0", + "react": "^18.0.0", + "react-dom": "^18.0.0", + "react-dropzone": "^12.0.4", + "react-error-boundary": "^3.1.4", "react-hotkeys-hook": "^3.4.4", "react-json-view": "^1.21.3", - "react-portal": "^4.2.1", - "react-query": "^3.34.16", - "react-router": "6.2.1", - "react-router-dom": "6.2.1", + "react-portal": "^4.2.2", + "react-query": "^3.34.19", + "react-router": "6.3.0", + "react-router-dom": "6.3.0", "react-spline": "^1.2.1", "react-transition-group": "^4.4.2", - "react-virtuoso": "^2.2.6", - "rooks": "^5.7.1", - "tailwindcss": "^3.0.7", - "vite": "^2.4.4", + "react-virtuoso": "^2.9.0", + "rooks": "^5.11.0", + "tailwindcss": "^3.0.23", + "vite": "^2.9.1", "vite-plugin-filter-replace": "^0.1.9", "vite-plugin-react-svg": "^0.2.0", - "vite-tsconfig-paths": "^3.3.13", - "zustand": "^3.7.1" + "vite-tsconfig-paths": "^3.4.1", + "zustand": "^3.7.2" } } diff --git a/apps/desktop/src-tauri/src/main.rs b/apps/desktop/src-tauri/src/main.rs index 42a1a4bfb..27ed97faf 100644 --- a/apps/desktop/src-tauri/src/main.rs +++ b/apps/desktop/src-tauri/src/main.rs @@ -5,8 +5,6 @@ use tauri::api::path; use tauri::Manager; mod menu; -use window_shadows::set_shadow; - #[tauri::command(async)] async fn client_query_transport( core: tauri::State<'_, CoreController>, @@ -55,11 +53,14 @@ async fn main() { .setup(|app| { let app = app.handle(); - app.windows().iter().for_each(|(_, window)| { - set_shadow(&window, true).unwrap_or(()); + #[cfg(not(target_os = "linux"))] + { + app.windows().iter().for_each(|(_, window)| { + window_shadows::set_shadow(&window, true).unwrap_or(()); - window.start_dragging().unwrap_or(()); - }); + window.start_dragging().unwrap_or(()); + }); + } // core event transport tokio::spawn(async move { diff --git a/apps/desktop/src/App.tsx b/apps/desktop/src/App.tsx index dda6242be..5bb519983 100644 --- a/apps/desktop/src/App.tsx +++ b/apps/desktop/src/App.tsx @@ -24,6 +24,7 @@ import LocationSettings from './screens/settings/LocationSettings'; import { RedirectPage } from './screens/Redirect'; import { QueryClient, QueryClientProvider } from 'react-query'; import { platform } from '@tauri-apps/api/os'; +import { ClientProvider } from '@sd/client'; const queryClient = new QueryClient(); @@ -83,6 +84,10 @@ function Router() { let location = useLocation(); let state = location.state as { backgroundLocation?: Location }; + useEffect(() => { + console.log({ url: location.pathname }); + }, [state]); + return ( <> @@ -91,7 +96,7 @@ function Router() { } /> } /> } /> - } /> + } /> } /> @@ -124,7 +129,6 @@ function ErrorFallback({ error, resetErrorBoundary }: FallbackProps) { function NotFound() { const navigate = useNavigate(); - return (
{ +// process.exit(); +// }); + function AppContainer() { useCoreEvents(); return ( @@ -152,10 +160,18 @@ function AppContainer() { } export default function App() { + // @ts-ignore: TODO: This is a hack and a better solution should probably be found. This exists so that the queryClient can be accessed within the subpackage '@sd/client'. Refer to for where this is used. + if (window.ReactQueryClient === undefined) { + // @ts-ignore + window.ReactQueryClient = queryClient; + } + return ( {}}> - - + + + + ); diff --git a/apps/desktop/src/components/primitive/Button.tsx b/apps/desktop/src/components/primitive/Button.tsx index 735461d87..25746ad55 100644 --- a/apps/desktop/src/components/primitive/Button.tsx +++ b/apps/desktop/src/components/primitive/Button.tsx @@ -86,14 +86,14 @@ export interface ButtonProps extends React.ButtonHTMLAttributes = ({ loading, ...props }) => { +export const Button: React.FC = ({ loading, justifyLeft, ...props }) => { return (