Merge branch 'main' of https://git.johncosta.tech/JohnCosta27/Haystack
This commit is contained in:
@@ -1,45 +1,44 @@
|
||||
{
|
||||
"name": "haystack",
|
||||
"version": "0.1.0",
|
||||
"description": "Screenshots that organize themselves",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"start": "vite",
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"serve": "vite preview",
|
||||
"tauri": "tauri",
|
||||
"lint": "bunx @biomejs/biome lint .",
|
||||
"format": "bunx @biomejs/biome format . --write"
|
||||
},
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@kobalte/core": "^0.13.9",
|
||||
"@kobalte/tailwindcss": "^0.9.0",
|
||||
"@solidjs/router": "^0.15.3",
|
||||
"@tabler/icons-solidjs": "^3.30.0",
|
||||
"@tauri-apps/api": "^2",
|
||||
"@tauri-apps/plugin-dialog": "~2",
|
||||
"@tauri-apps/plugin-global-shortcut": "~2",
|
||||
"@tauri-apps/plugin-opener": "^2",
|
||||
"@tauri-apps/plugin-store": "~2",
|
||||
"clsx": "^2.1.1",
|
||||
"fuse.js": "^7.1.0",
|
||||
"jwt-decode": "^4.0.0",
|
||||
"solid-js": "^1.9.3",
|
||||
"solid-motionone": "^1.0.3",
|
||||
"tailwind-scrollbar-hide": "^2.0.0",
|
||||
"valibot": "^1.0.0-rc.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^1.9.4",
|
||||
"@tauri-apps/cli": "^2",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"postcss": "^8.5.3",
|
||||
"postcss-cli": "^11.0.0",
|
||||
"tailwindcss": "3.4.0",
|
||||
"typescript": "~5.6.2",
|
||||
"vite": "^6.0.3",
|
||||
"vite-plugin-solid": "^2.11.0"
|
||||
}
|
||||
"name": "haystack",
|
||||
"version": "0.1.0",
|
||||
"description": "Screenshots that organize themselves",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"start": "vite",
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"serve": "vite preview",
|
||||
"tauri": "tauri",
|
||||
"lint": "bunx @biomejs/biome lint .",
|
||||
"format": "bunx @biomejs/biome format . --write"
|
||||
},
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@kobalte/core": "^0.13.9",
|
||||
"@kobalte/tailwindcss": "^0.9.0",
|
||||
"@solidjs/router": "^0.15.3",
|
||||
"@tabler/icons-solidjs": "^3.30.0",
|
||||
"@tauri-apps/api": "^2",
|
||||
"@tauri-apps/plugin-dialog": "~2",
|
||||
"@tauri-apps/plugin-http": "~2",
|
||||
"@tauri-apps/plugin-opener": "^2",
|
||||
"clsx": "^2.1.1",
|
||||
"fuse.js": "^7.1.0",
|
||||
"jwt-decode": "^4.0.0",
|
||||
"solid-js": "^1.9.3",
|
||||
"solid-motionone": "^1.0.3",
|
||||
"tailwind-scrollbar-hide": "^2.0.0",
|
||||
"valibot": "^1.0.0-rc.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^1.9.4",
|
||||
"@tauri-apps/cli": "^2",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"postcss": "^8.5.3",
|
||||
"postcss-cli": "^11.0.0",
|
||||
"tailwindcss": "3.4.0",
|
||||
"typescript": "~5.6.2",
|
||||
"vite": "^6.0.3",
|
||||
"vite-plugin-solid": "^2.11.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ notify = "6.1.1"
|
||||
base64 = "0.21.7"
|
||||
tokio = { version = "1.36.0", features = ["full"] }
|
||||
tauri-plugin-store = "2"
|
||||
tauri-plugin-http = "2"
|
||||
|
||||
[target."cfg(target_os = \"macos\")".dependencies]
|
||||
cocoa = "0.26"
|
||||
|
||||
@@ -11,6 +11,11 @@
|
||||
"global-shortcut:allow-is-registered",
|
||||
"global-shortcut:allow-register",
|
||||
"global-shortcut:allow-unregister",
|
||||
"global-shortcut:allow-unregister-all"
|
||||
"global-shortcut:allow-unregister-all",
|
||||
"http:default",
|
||||
{
|
||||
"identifier": "http:default",
|
||||
"allow": [{ "url": "https://haystack.johncosta.tech" }]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ pub fn run() {
|
||||
|
||||
tauri::Builder::default()
|
||||
.plugin(tauri_plugin_store::Builder::new().build())
|
||||
.plugin(tauri_plugin_http::init())
|
||||
.plugin(tauri_plugin_dialog::init())
|
||||
.plugin(tauri_plugin_opener::init())
|
||||
.manage(watcher_state)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Button } from "@kobalte/core/button";
|
||||
import { TextField } from "@kobalte/core/text-field";
|
||||
import { createSignal, Show, type Component } from "solid-js";
|
||||
import { postCode, postLogin } from "./network";
|
||||
import { base, postCode, postLogin } from "./network";
|
||||
import { isTokenValid } from "./ProtectedRoute";
|
||||
import { Navigate } from "@solidjs/router";
|
||||
|
||||
@@ -40,20 +40,23 @@ export const Login: Component = () => {
|
||||
const isAuthorized = isTokenValid();
|
||||
|
||||
return (
|
||||
<Show when={!isAuthorized} fallback={<Navigate href="/" />}>
|
||||
<form ref={form} onSubmit={onSubmit}>
|
||||
<TextField name="email">
|
||||
<TextField.Label>Email</TextField.Label>
|
||||
<TextField.Input />
|
||||
</TextField>
|
||||
<Show when={submitted()}>
|
||||
<TextField name="code">
|
||||
<TextField.Label>Code</TextField.Label>
|
||||
<>
|
||||
{base}
|
||||
<Show when={!isAuthorized} fallback={<Navigate href="/" />}>
|
||||
<form ref={form} onSubmit={onSubmit}>
|
||||
<TextField name="email">
|
||||
<TextField.Label>Email</TextField.Label>
|
||||
<TextField.Input />
|
||||
</TextField>
|
||||
</Show>
|
||||
<Button type="submit">Submit</Button>
|
||||
</form>
|
||||
</Show>
|
||||
<Show when={submitted()}>
|
||||
<TextField name="code">
|
||||
<TextField.Label>Code</TextField.Label>
|
||||
<TextField.Input />
|
||||
</TextField>
|
||||
</Show>
|
||||
<Button type="submit">Submit</Button>
|
||||
</form>
|
||||
</Show>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { fetch } from "@tauri-apps/plugin-http";
|
||||
|
||||
import {
|
||||
type InferOutput,
|
||||
array,
|
||||
@@ -17,8 +19,12 @@ type BaseRequestParams = Partial<{
|
||||
method: "GET" | "POST";
|
||||
}>;
|
||||
|
||||
export const base = import.meta.env.DEV
|
||||
? "http://localhost:3040"
|
||||
: "https://haystack.johncosta.tech";
|
||||
|
||||
const getBaseRequest = ({ path, body, method }: BaseRequestParams): Request => {
|
||||
return new Request(`http://localhost:3040/${path}`, {
|
||||
return new Request(`${base}/${path}`, {
|
||||
body,
|
||||
method,
|
||||
});
|
||||
@@ -29,7 +35,7 @@ const getBaseAuthorizedRequest = ({
|
||||
body,
|
||||
method,
|
||||
}: BaseRequestParams): Request => {
|
||||
return new Request(`http://localhost:3040/${path}`, {
|
||||
return new Request(`${base}/${path}`, {
|
||||
headers: {
|
||||
Authorization: `Bearer ${localStorage.getItem("access")?.toString()}`,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user