diff --git a/src/app.html b/src/app.html index 703e4fc..d26540f 100644 --- a/src/app.html +++ b/src/app.html @@ -1,18 +1,17 @@ + + + + + %sveltekit.head% + + + - - - - - %sveltekit.head% - - - - -
-
%sveltekit.body%
-
- - - \ No newline at end of file + +
+
%sveltekit.body%
+
+ + diff --git a/src/lib/app.d.ts b/src/lib/app.d.ts new file mode 100644 index 0000000..a4488cd --- /dev/null +++ b/src/lib/app.d.ts @@ -0,0 +1,18 @@ +declare global { + namespace App { + interface UserProfile { + id?: string; + name?: string; + displayName?: string; + image?: string; + banner?: string; + bio?: string; + nip05?: string; + lud16?: string; + about?: string; + zapService?: string; + } + } +} + +export {}; diff --git a/src/lib/components/Avatar.svelte b/src/lib/components/Avatar.svelte new file mode 100644 index 0000000..91f0ff0 --- /dev/null +++ b/src/lib/components/Avatar.svelte @@ -0,0 +1,23 @@ + + +User Avatar diff --git a/src/lib/components/LoginDropdown.svelte b/src/lib/components/LoginDropdown.svelte new file mode 100644 index 0000000..951bccd --- /dev/null +++ b/src/lib/components/LoginDropdown.svelte @@ -0,0 +1,7 @@ + + +{#if !$ndk.signer} +
+{/if} \ No newline at end of file diff --git a/src/lib/components/NavBar.svelte b/src/lib/components/NavBar.svelte new file mode 100644 index 0000000..1e4ff50 --- /dev/null +++ b/src/lib/components/NavBar.svelte @@ -0,0 +1,37 @@ + + + diff --git a/src/lib/interfaces/user.ts b/src/lib/interfaces/user.ts new file mode 100644 index 0000000..7bbaa74 --- /dev/null +++ b/src/lib/interfaces/user.ts @@ -0,0 +1,22 @@ +import { get as getStore } from 'svelte/store'; +import { ndk as ndkStore } from '$lib/stores/nostr'; +import GetUserParams, { type NDKUserParams } from '@nostr-dev-kit/ndk'; +// import { liveQuery, type Observable } from 'dexie'; +import { browser } from '$app/environment'; +// import { db } from '$lib/interfaces/db'; + +const UserInterface = { + //get: (opts: GetUserParams): Observable => { + get: (opts: NDKUserParams): App.UserProfile => { + const ndk = getStore(ndkStore); + const user = ndk.getUser(opts); + console.log('get user', opts); + let userProfile = { ...(user.profile || {}), id: user.pubkey }; + user.fetchProfile().then(async () => { + userProfile = { ...userProfile, ...(user.profile || {}) }; + }); + return userProfile; + } +}; + +export default UserInterface; diff --git a/src/lib/stores/nostr.ts b/src/lib/stores/nostr.ts index 3f82db7..573da9b 100644 --- a/src/lib/stores/nostr.ts +++ b/src/lib/stores/nostr.ts @@ -1,38 +1,36 @@ -import { writable } from "svelte/store"; -import NDK from "@nostr-dev-kit/ndk"; -import NDKSvelte from "@nostr-dev-kit/ndk-svelte"; -import { RelayList } from "@nostr-dev-kit/ndk-svelte-components"; +import { writable } from 'svelte/store'; +import NDKSvelte from '@nostr-dev-kit/ndk-svelte'; let relays; try { - relays = localStorage.getItem('relays'); + relays = localStorage.getItem('relays'); } catch (e) {} let relayList: string[] = []; if (relays) { - relayList = JSON.parse(relays); + relayList = JSON.parse(relays); } -export const defaultRelays = [ - 'wss://purplepag.es', - 'wss://relay.damus.io', - 'wss://relay.f7z.io' -] +export const defaultRelays = ['wss://purplepag.es', 'wss://relay.damus.io', 'wss://relay.f7z.io']; if (!relayList || !Array.isArray(relayList) || relayList.length === 0) { - relayList = defaultRelays; + relayList = defaultRelays; } const _ndk: NDKSvelte = new NDKSvelte({ - //devWriteRelayUrls: ['wss://relay.strfront.com'], - explicitRelayUrls: relayList, - enableOutboxModel: true, + devWriteRelayUrls: ['wss://relay.strfront.com'], + explicitRelayUrls: relayList, + enableOutboxModel: true, + autoConnectUserRelays: true, + autoFetchUserMutelist: true }) as NDKSvelte; _ndk.connect(); -export const ndk = _ndk; +console.log(_ndk.activeUser?.profile); -// export default ndk; \ No newline at end of file +const ndkStore = writable(_ndk); + +export const ndk = ndkStore; diff --git a/src/lib/types.ts b/src/lib/types.ts new file mode 100644 index 0000000..4c72f76 --- /dev/null +++ b/src/lib/types.ts @@ -0,0 +1,4 @@ +export enum CofabKind { + Supplier = 30000, + Order = 30001 +} \ No newline at end of file diff --git a/src/lib/utils/modal.ts b/src/lib/utils/modal.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 9fbb9ca..4d18186 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -1,11 +1,37 @@ - + + + diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index d5dc599..707eeb0 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,23 +1,36 @@ - + - Decentralized Manufacturing + Decentralized Manufacturing -

Home

-

- {$highlights.length} - {ndk.explicitRelayUrls} - {ndk.activeUser} -

\ No newline at end of file + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut + labore et dolore magna aliqua. Consequat id porta nibh venenatis cras sed felis eget. Fermentum et + sollicitudin ac orci phasellus egestas tellus rutrum tellus. Lobortis mattis aliquam faucibus + purus in massa tempor nec. In nisl nisi scelerisque eu ultrices vitae. Dui sapien eget mi proin + sed libero enim. Pharetra massa massa ultricies mi quis. Quam viverra orci sagittis eu volutpat + odio. Et malesuada fames ac turpis egestas integer eget. Tellus elementum sagittis vitae et leo. + Lorem ipsum dolor sit amet consectetur adipiscing elit pellentesque. Nulla posuere sollicitudin + aliquam ultrices sagittis orci a scelerisque purus. +

+placeholder +

+ Imperdiet dui accumsan sit amet nulla. At erat pellentesque adipiscing commodo elit at. Eu mi + bibendum neque egestas. Leo vel orci porta non pulvinar neque laoreet. Quam pellentesque nec nam + aliquam sem et tortor consequat. Blandit volutpat maecenas volutpat blandit. Praesent semper + feugiat nibh sed pulvinar proin gravida hendrerit lectus. Malesuada proin libero nunc consequat + interdum. Risus pretium quam vulputate dignissim. Sollicitudin nibh sit amet commodo nulla. Et + netus et malesuada fames ac turpis egestas sed. Enim sed faucibus turpis in eu mi bibendum neque. + Blandit massa enim nec dui nunc. Aliquam ultrices sagittis orci a scelerisque purus. Pharetra diam + sit amet nisl suscipit adipiscing bibendum. Lorem donec massa sapien faucibus et molestie. Enim + tortor at auctor urna nunc id cursus metus. A erat nam at lectus urna duis convallis convallis. + Tempor id eu nisl nunc mi ipsum. +

diff --git a/svelte.config.js b/svelte.config.js index 4a82086..75596bf 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -11,7 +11,12 @@ const config = { // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. // If your environment is not supported, or you settled on a specific environment, switch out the adapter. // See https://kit.svelte.dev/docs/adapters for more information about adapters. - adapter: adapter() + adapter: adapter(), + alias: { + $lib: 'src/lib', + $utils: 'src/lib/utils', + $comp: 'src/lib/components' + } } };