commit a15b8afd6eeb97c3f89bae60b905d139c4c49b3d
parent 325b413f29700670390e0b49726cb051948ffc1d
Author: triesap <137732411+triesap@users.noreply.github.com>
Date: Tue, 27 Aug 2024 17:34:07 +0000
Update `/settings` with test methods, add share, modify stores and root layout
Diffstat:
8 files changed, 309 insertions(+), 55 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -50,3 +50,4 @@ dist
static/assets/sql-wasm.wasm
static/phosphor-icons
static/webfonts
+git-diff.txt
diff --git a/src/lib/components/layout-trellis.svelte b/src/lib/components/layout-trellis.svelte
@@ -5,6 +5,6 @@
</script>
-<div class={`flex flex-col w-full pt-4 px-4 gap-4 justify-start items-start`}>
+<div class={`flex flex-col w-full pt-20 pb-12 px-4 gap-4 justify-start items-start overflow-y-scroll`}>
{@render children()}
</div>
diff --git a/src/lib/stores.ts b/src/lib/stores.ts
@@ -5,8 +5,8 @@ import { writable } from "svelte/store";
export const app_thc = writable<ColorMode>(`light`);
export const app_thm = writable<ThemeKey>(`os`);
-export const app_config = writable<boolean>(true);
-export const app_render = writable<boolean>(true);
+export const app_config = writable<boolean>(false);
+export const app_render = writable<boolean>(false);
export const app_lo = writable<AppLayoutKey>(`base`);
export const app_win = writable<[number, number]>([0, 0]);
diff --git a/src/routes/(app)/+page.svelte b/src/routes/(app)/+page.svelte
@@ -1,7 +1,6 @@
<script lang="ts">
import { goto } from "$app/navigation";
import { cl } from "$lib/client";
- import { _cf } from "$lib/conf";
import { t } from "@radroots/svelte-lib";
</script>
@@ -17,51 +16,17 @@
<button
class={`button-simple`}
onclick={async () => {
- const public_key = await cl.preferences.get(_cf.pref_key_active);
- await cl.dialog.alert(
- `Hi! This is your nostr public key ${public_key}`,
- );
- }}
- >
- {"test #1"}
- </button>
- <button
- class={`button-simple`}
- onclick={async () => {
- const public_key = await cl.preferences.get(_cf.pref_key_active);
- const secret_key = await cl.keystore.get(`nostr:key:${public_key}`);
- await cl.dialog.alert(
- `Hi! This is your nostr secret key ${secret_key}`,
- );
- }}
- >
- {"test #2"}
- </button>
- <button
- class={`button-simple`}
- onclick={async () => {
- const confirm = await cl.dialog.confirm(
- `Hi! This will delete your nostr key.`,
- );
- if (confirm) {
- const public_key = await cl.preferences.get(
- _cf.pref_key_active,
- );
- const key_removed = await cl.keystore.remove(
- `nostr:key:${public_key}`,
- );
- if (key_removed) location.reload();
- }
+ await goto(`/settings`);
}}
>
- {"test #3"}
+ {"settings"}
</button>
<button
class={`button-simple`}
onclick={async () => {
- await goto(`/settings`);
+ //
}}
>
- {"settings"}
+ {"test #1"}
</button>
</div>
diff --git a/src/routes/(app)/settings/+page.svelte b/src/routes/(app)/settings/+page.svelte
@@ -1,6 +1,8 @@
<script lang="ts">
import { goto } from "$app/navigation";
+ import { cl } from "$lib/client";
import LayoutTrellis from "$lib/components/layout-trellis.svelte";
+ import { _cf } from "$lib/conf";
import { app_thc } from "$lib/stores";
import { toggle_color_mode, trellis } from "@radroots/svelte-lib";
</script>
@@ -46,6 +48,7 @@
],
},
callback: async () => {
+ await cl.haptics.impact();
app_thc.set(toggle_color_mode($app_thc));
},
},
@@ -54,4 +57,288 @@
},
}}
/>
+ <svelte:component
+ this={trellis}
+ basis={{
+ args: {
+ layer: 1,
+ title: {
+ value: `Nostr Keys`,
+ },
+ list: [
+ {
+ touch: {
+ label: {
+ left: [
+ {
+ value: `Nostr Key (public)`,
+ classes: `capitalize`,
+ },
+ ],
+ },
+ end: {
+ icon: {
+ key: `caret-right`,
+ },
+ },
+ callback: async () => {
+ const public_key = await cl.preferences.get(
+ _cf.pref_key_active,
+ );
+ await cl.dialog.alert(
+ `Hi! This is your nostr public key ${public_key}`,
+ );
+ },
+ },
+ },
+ {
+ touch: {
+ label: {
+ left: [
+ {
+ value: `Nostr Key (secret)`,
+ classes: `capitalize`,
+ },
+ ],
+ },
+ end: {
+ icon: {
+ key: `caret-right`,
+ },
+ },
+ callback: async () => {
+ const public_key = await cl.preferences.get(
+ _cf.pref_key_active,
+ );
+ const secret_key = await cl.keystore.get(
+ `nostr:key:${public_key}`,
+ );
+ await cl.dialog.alert(
+ `Hi! This is your nostr secret key ${secret_key}`,
+ );
+ },
+ },
+ },
+ ],
+ },
+ }}
+ />
+ <svelte:component
+ this={trellis}
+ basis={{
+ args: {
+ layer: 1,
+ title: {
+ value: `Configuration`,
+ },
+ list: [
+ {
+ touch: {
+ label: {
+ left: [
+ {
+ value: `Reset Device`,
+ classes: `capitalize`,
+ },
+ ],
+ },
+ end: {
+ icon: {
+ key: `caret-right`,
+ },
+ },
+ callback: async () => {
+ const confirm = await cl.dialog.confirm(
+ `Hi! This will delete your saved keys.`,
+ );
+ if (confirm) {
+ const public_key = await cl.preferences.get(
+ _cf.pref_key_active,
+ );
+ await cl.keystore.remove(
+ `nostr:key:${public_key}`,
+ );
+ await cl.preferences.remove(
+ _cf.pref_key_active,
+ );
+ await cl.window.splash_show();
+ location.reload();
+ }
+ },
+ },
+ },
+ ],
+ },
+ }}
+ />
+ <svelte:component
+ this={trellis}
+ basis={{
+ args: {
+ layer: 1,
+ title: {
+ value: `Haptics`,
+ },
+ list: [
+ {
+ touch: {
+ label: {
+ left: [
+ {
+ value: `Haptics Touch (less)`,
+ classes: `capitalize`,
+ },
+ ],
+ },
+ end: {
+ icon: {
+ key: `caret-right`,
+ },
+ },
+ callback: async () => {
+ await cl.haptics.impact("less");
+ },
+ },
+ },
+ {
+ touch: {
+ label: {
+ left: [
+ {
+ value: `Haptics Touch (more)`,
+ classes: `capitalize`,
+ },
+ ],
+ },
+ end: {
+ icon: {
+ key: `caret-right`,
+ },
+ },
+ callback: async () => {
+ await cl.haptics.impact("more");
+ },
+ },
+ },
+ {
+ touch: {
+ label: {
+ left: [
+ {
+ value: `Haptics Vibrate (500ms)`,
+ classes: `capitalize`,
+ },
+ ],
+ },
+ end: {
+ icon: {
+ key: `caret-right`,
+ },
+ },
+ callback: async () => {
+ await cl.haptics.vibrate(500);
+ },
+ },
+ },
+ {
+ touch: {
+ label: {
+ left: [
+ {
+ value: `Haptics Selection Start`,
+ classes: `capitalize`,
+ },
+ ],
+ },
+ end: {
+ icon: {
+ key: `caret-right`,
+ },
+ },
+ callback: async () => {
+ await cl.haptics.selection_start();
+ },
+ },
+ },
+ {
+ touch: {
+ label: {
+ left: [
+ {
+ value: `Haptics Selection End`,
+ classes: `capitalize`,
+ },
+ ],
+ },
+ end: {
+ icon: {
+ key: `caret-right`,
+ },
+ },
+ callback: async () => {
+ await cl.haptics.selection_end();
+ },
+ },
+ },
+ ],
+ },
+ }}
+ />
+ <svelte:component
+ this={trellis}
+ basis={{
+ args: {
+ layer: 1,
+ title: {
+ value: `Share`,
+ },
+ list: [
+ {
+ touch: {
+ label: {
+ left: [
+ {
+ value: `Share Test #1`,
+ classes: `capitalize`,
+ },
+ ],
+ },
+ callback: async () => {
+ const res = await cl.share.open({
+ title: `Radroots Home Page`,
+ text: `Find farmers around the world.`,
+ url: `https://radroots.org`,
+ dialog_title: `This is the dialog title`,
+ });
+
+ console.log(`res `, res);
+ },
+ },
+ },
+ {
+ touch: {
+ label: {
+ left: [
+ {
+ value: `Share Test #2`,
+ classes: `capitalize`,
+ },
+ ],
+ },
+ callback: async () => {
+ const res = await cl.share.open({
+ title: `Radroots Home Page`,
+ url: `https://radroots.org`,
+ dialog_title: `This is the dialog title`,
+ files: [`file-1.png`, `file-2.png`],
+ });
+
+ console.log(`res `, res);
+ },
+ },
+ },
+ ],
+ },
+ }}
+ />
</LayoutTrellis>
diff --git a/src/routes/(conf)/+layout.ts b/src/routes/(conf)/+layout.ts
@@ -11,9 +11,11 @@ export const load: LayoutLoad = async ({ url }: LayoutLoadEvent) => {
const active_nostr_key = ks_keys?.find(
(i) => i === `nostr:key:${key_active}`,
);
- if (active_nostr_key) return await goto(`/`);
+ if (active_nostr_key) {
+ await goto(`/`);
+ return
+ }
}
-
} catch (e) { } finally {
return {};
};
diff --git a/src/routes/(conf)/conf/nostr/+page.svelte b/src/routes/(conf)/conf/nostr/+page.svelte
@@ -19,7 +19,9 @@
_cf.pref_key_active,
pk_hex,
);
- if (key_pref_added) await goto("/");
+ if (key_pref_added) {
+ await goto(`/`);
+ }
}
}}
>
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
@@ -8,6 +8,7 @@
import { app_config, app_key, app_lo, app_pwa_polyfills, app_render, app_sqlite, app_thc, app_thm, app_win } from "$lib/stores";
import {
css_static as CssStatic,
+ sleep,
theme_set,
type PropChildren,
} from "@radroots/svelte-lib";
@@ -58,7 +59,6 @@
try {
if (!app_config) return;
app_sqlite.set(!!(await cl.db.connect(PUBLIC_DATABASE_NAME)));
-
const key_active = await cl.preferences.get(_cf.pref_key_active);
console.log(`key_active `, key_active)
const nostr_key = await cl.keystore.get(`nostr:key:${key_active}`);
@@ -67,7 +67,6 @@
else {
await cl.preferences.remove(_cf.pref_key_active);
await goto(`/conf/nostr`);
- return;
}
} catch (e) {
console.log(`(app_config) error `, e);
@@ -79,10 +78,7 @@
app_render.subscribe(async (app_render) => {
try {
if (!app_render) return;
- let dev_routes = false;
- let route = "/";
- if (dev_routes) route = `/`;
- await goto(route);
+ await sleep(321);
} catch (e) {
console.log(`(app_render) error `, e);
} finally {
@@ -90,8 +86,9 @@
}
});
</script>
-
-<LayoutWindow>
- {@render children()}
-</LayoutWindow>
+{#if $app_render}
+ <LayoutWindow>
+ {@render children()}
+ </LayoutWindow>
+{/if}
<CssStatic />