diff --git a/platforms/blabsy/public/assets/w3dslogo.svg b/platforms/blabsy/public/assets/w3dslogo.svg new file mode 100644 index 00000000..fbb94553 --- /dev/null +++ b/platforms/blabsy/public/assets/w3dslogo.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/platforms/blabsy/src/components/layout/common-layout.tsx b/platforms/blabsy/src/components/layout/common-layout.tsx index 277c2e2e..3e5aa24c 100644 --- a/platforms/blabsy/src/components/layout/common-layout.tsx +++ b/platforms/blabsy/src/components/layout/common-layout.tsx @@ -2,19 +2,79 @@ import { useRequireAuth } from '@lib/hooks/useRequireAuth'; import { Aside } from '@components/aside/aside'; import { Suggestions } from '@components/aside/suggestions'; import { Placeholder } from '@components/common/placeholder'; -import type { ReactNode } from 'react'; +import { type ReactNode, useState } from 'react'; +import { Modal } from '@components/modal/modal'; +import { Button } from '@components/ui/button'; +import { useAuth } from '@lib/context/auth-context'; export type LayoutProps = { children: ReactNode; }; export function ProtectedLayout({ children }: LayoutProps): JSX.Element { - // const user = useRequireAuth(); - const user = true; // TODO: Change back to useRequireAuth; Doing for development purposes + const user = useRequireAuth(); + const { signOut } = useAuth(); + const [disclaimerAccepted, setDisclaimerAccepted] = useState(false); if (!user) return ; - return <>{children}; + return ( + <> + {children} + {!disclaimerAccepted ? ( + signOut()} + className='max-w-lg mx-auto mt-24' + modalClassName='bg-black backdrop-blur-md p-6 rounded-lg flex flex-col gap-2' + > +

+ Disclaimer from MetaState Foundation +

+

⚠️ Please note:

+

+ Blabsy is a functional prototype, intended to + showcase interoperability and core concepts of + the W3DS ecosystem. +

+

+ It is not a production-grade platform and may + lack full reliability, performance, and security + guarantees. +

+

+ We strongly recommend that you avoid sharing{' '} + sensitive or private content, and kindly ask for + your understanding regarding any bugs, incomplete + features, or unexpected behaviours. +

+

+ The app is still in development, so we kindly ask for + your understanding regarding any potential issues. If + you experience issues or have feedback, feel free to + contact us at: +

+ + info@metastate.foundation + + +
+ ) : ( + <> + )} + + ); } export function HomeLayout({ children }: LayoutProps): JSX.Element { diff --git a/platforms/blabsy/src/components/login/login-main.tsx b/platforms/blabsy/src/components/login/login-main.tsx index 0bdf07c2..252ed2c6 100644 --- a/platforms/blabsy/src/components/login/login-main.tsx +++ b/platforms/blabsy/src/components/login/login-main.tsx @@ -3,6 +3,7 @@ import axios from 'axios'; import { useEffect, useState } from 'react'; import { useAuth } from '@lib/context/auth-context'; import { NextImage } from '@components/ui/next-image'; +import Image from 'next/image'; export function LoginMain(): JSX.Element { const { signInWithCustomToken } = useAuth(); @@ -76,9 +77,23 @@ export function LoginMain(): JSX.Element { {qr && } +
+ W3DS logo +
-
-
+
+
+ You are entering Blabsy - a social network built on the + Web 3.0 Data Space (W3DS) architecture. This system is + designed around the principle of data-platform + separation, where all your personal content is stored in + your own sovereign eVault, not on centralised servers. +
diff --git a/platforms/blabsy/src/lib/context/auth-context.tsx b/platforms/blabsy/src/lib/context/auth-context.tsx index 67b996a1..1b72fd9e 100644 --- a/platforms/blabsy/src/lib/context/auth-context.tsx +++ b/platforms/blabsy/src/lib/context/auth-context.tsx @@ -169,7 +169,6 @@ export function AuthContextProvider({ export function useAuth(): AuthContext { const context = useContext(AuthContext); - if (!context) throw new Error('useAuth must be used within an AuthContextProvider'); diff --git a/platforms/pictique/package.json b/platforms/pictique/package.json index 0cbc52af..69877e8d 100644 --- a/platforms/pictique/package.json +++ b/platforms/pictique/package.json @@ -56,6 +56,7 @@ "axios": "^1.6.7", "moment": "^2.30.1", "svelte-qrcode": "^1.0.1", + "svelte-qrcode-action": "^1.0.2", "tailwind-merge": "^3.0.2" } } diff --git a/platforms/pictique/src/declaration.d.ts b/platforms/pictique/src/declaration.d.ts index 195e8086..356f352c 100644 --- a/platforms/pictique/src/declaration.d.ts +++ b/platforms/pictique/src/declaration.d.ts @@ -1,4 +1,7 @@ -declare module 'svelte-qrcode' { - import { SvelteComponentTyped } from 'svelte'; - export default class QRCode extends SvelteComponentTyped<{ value: string; size?: number }> {} +declare module "svelte-qrcode" { + import { SvelteComponentTyped } from "svelte"; + export default class QRCode extends SvelteComponentTyped<{ + value: string; + size?: number; + }> {} } diff --git a/platforms/pictique/src/lib/icons/W3dslogo.svelte b/platforms/pictique/src/lib/icons/W3dslogo.svelte new file mode 100644 index 00000000..e2de2f25 --- /dev/null +++ b/platforms/pictique/src/lib/icons/W3dslogo.svelte @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/platforms/pictique/src/lib/icons/index.ts b/platforms/pictique/src/lib/icons/index.ts index 4e216554..c3a8328d 100644 --- a/platforms/pictique/src/lib/icons/index.ts +++ b/platforms/pictique/src/lib/icons/index.ts @@ -1,12 +1,13 @@ -export { default as Icons } from './Icons.svelte'; -export { default as Like } from './Like.svelte'; -export { default as Refresh } from './Refresh.svelte'; -export { default as CommentIcon } from './CommentIcon.svelte'; -export { default as VerticalDots } from './VerticalDots.svelte'; -export { default as Home } from './Home.svelte'; -export { default as Flash } from './Flash.svelte'; -export { default as CommentsTwo } from './CommentsTwo.svelte'; -export { default as Search } from './Search.svelte'; -export { default as Camera } from './Camera.svelte'; -export { default as Settings } from './Settings.svelte'; -export { default as Cross } from './Cross.svelte'; +export { default as Icons } from "./Icons.svelte"; +export { default as Like } from "./Like.svelte"; +export { default as Refresh } from "./Refresh.svelte"; +export { default as CommentIcon } from "./CommentIcon.svelte"; +export { default as VerticalDots } from "./VerticalDots.svelte"; +export { default as Home } from "./Home.svelte"; +export { default as Flash } from "./Flash.svelte"; +export { default as CommentsTwo } from "./CommentsTwo.svelte"; +export { default as Search } from "./Search.svelte"; +export { default as Camera } from "./Camera.svelte"; +export { default as Settings } from "./Settings.svelte"; +export { default as Cross } from "./Cross.svelte"; +export { default as W3dslogo } from "./W3dslogo.svelte"; diff --git a/platforms/pictique/src/lib/stores/disclaimer.ts b/platforms/pictique/src/lib/stores/disclaimer.ts new file mode 100644 index 00000000..b5e71079 --- /dev/null +++ b/platforms/pictique/src/lib/stores/disclaimer.ts @@ -0,0 +1,5 @@ +import { writable } from "svelte/store"; + +export const isDisclaimerModalOpen = writable(true); + +export const closeDisclaimerModal = () => isDisclaimerModalOpen.set(false); diff --git a/platforms/pictique/src/routes/(auth)/auth/+page.svelte b/platforms/pictique/src/routes/(auth)/auth/+page.svelte index 5459c2b8..086863af 100644 --- a/platforms/pictique/src/routes/(auth)/auth/+page.svelte +++ b/platforms/pictique/src/routes/(auth)/auth/+page.svelte @@ -1,9 +1,11 @@