From 366637c25f0de1ed4fffc7f7e4389ae0a17febbc Mon Sep 17 00:00:00 2001 From: LynithDev <61880709+LynithDev@users.noreply.github.com> Date: Sun, 2 Jun 2024 21:02:28 +0200 Subject: [PATCH] fix: snake_case for PackageFile, refactored Modal into 2 components --- Cargo.toml | 4 +- core/src/store/package.rs | 5 ++- desktop/src/ui/App.tsx | 2 +- desktop/src/ui/components/WindowFrame.tsx | 2 +- .../components/overlay/FullscreenOverlay.tsx | 32 ++++++++++++++ desktop/src/ui/components/overlay/Modal.tsx | 42 ++++++++----------- 6 files changed, 57 insertions(+), 30 deletions(-) create mode 100644 desktop/src/ui/components/overlay/FullscreenOverlay.tsx diff --git a/Cargo.toml b/Cargo.toml index 3b804ca4..f2111f7c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,7 +57,7 @@ prisma-client-rust-cli = { git = "https://github.com/brendonovich/prisma-client- ], default-features = false } prisma-client-rust-sdk = { git = "https://github.com/brendonovich/prisma-client-rust", rev = "4f9ef9d38ca732162accff72b2eb684d2f120bab", features = [ "sqlite" ], default-features = false } -interpulse = { git = "https://github.com/pulseflow/workers", rev = "dd85302dddc14861b60829cf8c71f52ffd6a7851" } +interpulse = { git = "https://github.com/pulseflow/workers", rev = "909a08897a5dc6f9e13729c3e6c622f045496801", features = [ "specta" ] } tracing = { version = "0.1" } tracing-subscriber = { version = "0.3", features = [ @@ -82,7 +82,7 @@ uuid = { version = "1.8", features = [ "serde", "v4" ] } -tokio = { version = "1.37", features = [ "full" ] } +tokio = { version = "1.38", features = [ "full" ] } async-tungstenite = { version = "0.25", features = [ "tokio-runtime", "tokio-rustls-native-certs" diff --git a/core/src/store/package.rs b/core/src/store/package.rs index 70019cb0..0594e6a1 100644 --- a/core/src/store/package.rs +++ b/core/src/store/package.rs @@ -6,6 +6,7 @@ use async_zip::tokio::read::fs::ZipFileReader; use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use sha2::Digest; +use specta::specta; use std::collections::HashMap; use std::path::{Path, PathBuf}; use tokio::io::AsyncReadExt; @@ -267,7 +268,7 @@ pub enum PackageDependency { /// The Client/Server side type of a [`Package`]. #[derive(Serialize, Deserialize, Clone, Debug, Eq, PartialEq)] -// #[serde(rename_all = "kebab-case")] +#[serde(rename_all = "snake_case")] #[cfg_attr(feature = "tauri", derive(specta::Type))] pub enum PackageSide { Required, @@ -279,7 +280,7 @@ pub enum PackageSide { /// The file type of a [`Package`]. #[cfg_attr(feature = "tauri", derive(specta::Type))] #[derive(Serialize, Deserialize, Clone, Debug)] -// #[serde(rename_all = "kebab-case")] +#[serde(rename_all = "snake_case")] pub enum PackageFile { RequiredPack, OptionalPack, diff --git a/desktop/src/ui/App.tsx b/desktop/src/ui/App.tsx index 32a2d73a..cbf0b623 100644 --- a/desktop/src/ui/App.tsx +++ b/desktop/src/ui/App.tsx @@ -16,7 +16,7 @@ function App(props: ParentProps) { return (
- +
diff --git a/desktop/src/ui/components/WindowFrame.tsx b/desktop/src/ui/components/WindowFrame.tsx index ecfce9da..9f682220 100644 --- a/desktop/src/ui/components/WindowFrame.tsx +++ b/desktop/src/ui/components/WindowFrame.tsx @@ -40,7 +40,7 @@ function WindowFrame() { }); return ( -
+
history.back()} />
diff --git a/desktop/src/ui/components/overlay/FullscreenOverlay.tsx b/desktop/src/ui/components/overlay/FullscreenOverlay.tsx new file mode 100644 index 00000000..10ea1fe9 --- /dev/null +++ b/desktop/src/ui/components/overlay/FullscreenOverlay.tsx @@ -0,0 +1,32 @@ +import type { + Accessor, + ParentProps, + Setter, +} from 'solid-js'; +import { Portal } from 'solid-js/web'; + +type FullscreenOverlayProps = { + visible: Accessor; + setVisible: Setter; +} & ParentProps; + +function FullscreenOverlay(props: FullscreenOverlayProps) { + function onBackdropClick() { + props.setVisible(false); + } + + return ( + +
+
onBackdropClick()} /> + +
+ {props.children} +
+ +
+ + ); +} + +export default FullscreenOverlay; diff --git a/desktop/src/ui/components/overlay/Modal.tsx b/desktop/src/ui/components/overlay/Modal.tsx index d8d37501..df565ffc 100644 --- a/desktop/src/ui/components/overlay/Modal.tsx +++ b/desktop/src/ui/components/overlay/Modal.tsx @@ -5,8 +5,8 @@ import type { Setter, } from 'solid-js'; import { For, mergeProps } from 'solid-js'; -import { Portal } from 'solid-js/web'; import Button from '../base/Button'; +import FullscreenOverlay from './FullscreenOverlay'; type ModalButtonProps = string | JSX.Element; @@ -36,33 +36,27 @@ type ModalProps = { function Modal(props: ModalProps) { const merged: ModalProps = mergeProps({ buttons: ['Ok'] }, props); - function onBackdropClick() { - props.setVisible(false); - } - return ( - -
-
onBackdropClick()} /> - -
-
-

{props.title}

-
- {props.children} -
-
- - {button => ( - - )} - -
+ +
+
+

{props.title}

+
+ {props.children} +
+
+ + {button => ( + + )} +
-
- +
); }