diff --git a/.vscode/extensions.json b/.vscode/extensions.json index c4b1c2da..66aca735 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -22,6 +22,7 @@ "streetsidesoftware.code-spell-checker", "1YiB.rust-bundle", "bradlc.vscode-tailwindcss", - "tauri-apps.tauri-vscode" + "tauri-apps.tauri-vscode", + "coderabbit.coderabbit-vscode" ] } diff --git a/platforms/metagram/src/lib/fragments/MessageInput/MessageInput.stories.ts b/platforms/metagram/src/lib/fragments/MessageInput/MessageInput.stories.ts new file mode 100644 index 00000000..2b4d51d1 --- /dev/null +++ b/platforms/metagram/src/lib/fragments/MessageInput/MessageInput.stories.ts @@ -0,0 +1,29 @@ +import type { ComponentProps } from 'svelte'; +import MessageInput from './MessageInput.svelte'; + +export default { + title: 'UI/MessageInput', + component: MessageInput, + tags: ['autodocs'], + render: (args: { Component: MessageInput; props: ComponentProps }) => ({ + Component: MessageInput, + props: args + }) +}; + +export const Comment = { + args: { + variant: 'comment', + placeholder: 'Write your comment', + handleSend: () => alert('sent') + } +}; + +export const Dm = { + args: { + variant: 'dm', + placeholder: 'Write your message', + handleAdd: () => alert('add'), + handleSend: () => alert('sent') + } +}; diff --git a/platforms/metagram/src/lib/fragments/MessageInput/MessageInput.svelte b/platforms/metagram/src/lib/fragments/MessageInput/MessageInput.svelte new file mode 100644 index 00000000..8a955931 --- /dev/null +++ b/platforms/metagram/src/lib/fragments/MessageInput/MessageInput.svelte @@ -0,0 +1,83 @@ + + +
+ {#if variant === 'comment'} + + {:else} + + + + {/if} + + {#if value || variant === 'dm'} + + +
+ +
+ {:else} +
+ + +
+ {/if} +
diff --git a/platforms/metagram/src/lib/fragments/Post/Post.stories.ts b/platforms/metagram/src/lib/fragments/Post/Post.stories.ts index fd5d57f1..ba051486 100644 --- a/platforms/metagram/src/lib/fragments/Post/Post.stories.ts +++ b/platforms/metagram/src/lib/fragments/Post/Post.stories.ts @@ -1,41 +1,38 @@ -import type { ComponentProps } from "svelte"; -import Post from "./Post.svelte"; +import type { ComponentProps } from 'svelte'; +import Post from './Post.svelte'; export default { - title: "Fragments/Post", - component: Post, - tags: ["autodocs"], - render: (args: { - Component: Post; - props: ComponentProps; - }) => ({ - Component: Post, - props: args, - }), + title: 'Fragments/Post', + component: Post, + tags: ['autodocs'], + render: (args: { Component: Post; props: ComponentProps }) => ({ + Component: Post, + props: args + }) }; export const Primary = { - args: { - avatar: "https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250", - username: "blurryface", - imgUri: "https://graphicsfamily.com/wp-content/uploads/edd/2023/01/Free-Photographer-Social-Media-Post-Design-Template-870x870.jpg", - postAlt: "Sample", - text: "Took some pictures today! Really love how this one in particular turned out! ", - time: "2 hours ago", - count: { - likes: 100, - comments: 50, - }, - callback: { - like: () => { - alert("Like clicked"); - }, - comment: () => { - alert("Comment clicked"); - }, - menu: () => { - alert("Menu clicked"); - }, - }, - }, + args: { + avatar: 'https://www.gravatar.com/avatar/2c7d99fe281ecd3bcd65ab915bac6dd5?s=250', + username: 'blurryface', + imgUri: 'https://graphicsfamily.com/wp-content/uploads/edd/2023/01/Free-Photographer-Social-Media-Post-Design-Template-870x870.jpg', + postAlt: 'Sample', + text: 'Took some pictures today! Really love how this one in particular turned out! ', + time: '2 hours ago', + count: { + likes: 100, + comments: 50 + }, + callback: { + like: () => { + alert('Like clicked'); + }, + comment: () => { + alert('Comment clicked'); + }, + menu: () => { + alert('Menu clicked'); + } + } + } }; diff --git a/platforms/metagram/src/lib/fragments/index.ts b/platforms/metagram/src/lib/fragments/index.ts index 3123f67c..18af613c 100644 --- a/platforms/metagram/src/lib/fragments/index.ts +++ b/platforms/metagram/src/lib/fragments/index.ts @@ -1,3 +1,4 @@ export { default as BottomNav } from './BottomNav/BottomNav.svelte'; export { default as SettingsNavigationButton } from './SettingsNavigationButton/SettingsNavigationButton.svelte'; +export { default as MessageInput } from './MessageInput/MessageInput.svelte'; export { default as InputFile } from './InputFile/InputFile.svelte'; diff --git a/platforms/metagram/src/lib/ui/Input/Input.stories.ts b/platforms/metagram/src/lib/ui/Input/Input.stories.ts index 789ed478..8ff5e7f4 100644 --- a/platforms/metagram/src/lib/ui/Input/Input.stories.ts +++ b/platforms/metagram/src/lib/ui/Input/Input.stories.ts @@ -1,59 +1,58 @@ -import { Input } from '..'; +import { Input } from ".."; export default { - title: 'UI/Input', - component: Input, - tags: ['autodocs'], - render: (args: { type: string; placeholder: string; helperText: string }) => ({ - Component: Input, - props: args - }) + title: "UI/Input", + component: Input, + tags: ["autodocs"], + render: (args: { + type: string; + placeholder: string; + helperText: string; + }) => ({ + Component: Input, + props: args, + }), }; export const Text = { - args: { - type: 'text', - placeholder: 'Joe Biden', - isRequired: true - } + args: { + type: "text", + placeholder: "Joe Biden", + }, }; export const Tel = { - args: { - type: 'tel', - placeholder: '987654321', - isRequired: true - } + args: { + type: "tel", + placeholder: "987654321", + }, }; -export const isError = { - args: { - type: 'text', - placeholder: 'Enter something', - isError: true - } +export const NumberInput = { + args: { + type: "number", + placeholder: "Enter something", + }, }; export const Email = { - args: { - type: 'email', - placeholder: 'example@email.com' - } + args: { + type: "email", + placeholder: "example@email.com", + }, }; -export const Password = { - args: { - type: 'password', - placeholder: 'Please enter password', - isRequired: true - } +export const Invalid = { + args: { + type: "email", + placeholder: "Invalid email", + value: "not-an-email", + }, }; -export const Disabled = { - args: { - type: 'text', - placeholder: 'Joe Biden', - isRequired: true, - isDisabled: true - } +export const Password = { + args: { + type: "password", + placeholder: "Please enter password", + }, }; diff --git a/platforms/metagram/src/lib/ui/Input/Input.svelte b/platforms/metagram/src/lib/ui/Input/Input.svelte index 32d3a8f1..37ec24b3 100644 --- a/platforms/metagram/src/lib/ui/Input/Input.svelte +++ b/platforms/metagram/src/lib/ui/Input/Input.svelte @@ -1,28 +1,20 @@ @@ -31,8 +23,6 @@ {type} {placeholder} bind:value - required={isRequired} - disabled={isDisabled} class={cn([cbase, restProps.class].join(' '))} tabindex="0" /> diff --git a/platforms/metagram/src/lib/ui/Toggle/Toggle.svelte b/platforms/metagram/src/lib/ui/Toggle/Toggle.svelte index 937fdbbb..76b656da 100644 --- a/platforms/metagram/src/lib/ui/Toggle/Toggle.svelte +++ b/platforms/metagram/src/lib/ui/Toggle/Toggle.svelte @@ -14,7 +14,7 @@