diff --git a/src/components/App.tsx b/src/components/App.tsx index b96a600..282f33f 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -1,5 +1,5 @@ import logo from '~/assets/icons/mutiny-logo.svg'; -import { DefaultMain, MutinyWalletGuard, SafeArea, VStack, Card } from "~/components/layout"; +import { DefaultMain, SafeArea, VStack, Card, FullscreenLoader } from "~/components/layout"; import BalanceBox from "~/components/BalanceBox"; import NavBar from "~/components/NavBar"; import ReloadPrompt from "~/components/Reload"; @@ -7,30 +7,36 @@ import { A } from 'solid-start'; import { OnboardWarning } from '~/components/OnboardWarning'; import { CombinedActivity } from './Activity'; import userClock from '~/assets/icons/user-clock.svg'; +import { useMegaStore } from '~/state/megaStore'; +import { Show } from 'solid-js'; export default function App() { + const [state, _actions] = useMegaStore(); + return ( - - - -
- logo - Activity -
+ + +
+ logo + Activity +
+ - - -
- + + + +
+ + }> - {/* View All */} - - View All - - - - - + + {/* View All */} + + View All + + + + ); } diff --git a/src/components/BalanceBox.tsx b/src/components/BalanceBox.tsx index cae3044..708df39 100644 --- a/src/components/BalanceBox.tsx +++ b/src/components/BalanceBox.tsx @@ -1,7 +1,8 @@ import { Show, Suspense } from "solid-js"; -import { ButtonLink, FancyCard, Indicator } from "~/components/layout"; +import { Button, ButtonLink, FancyCard, Indicator } from "~/components/layout"; import { useMegaStore } from "~/state/megaStore"; import { Amount } from "./Amount"; +import { useNavigate } from "solid-start"; function prettyPrintAmount(n?: number | bigint): string { if (!n || n.valueOf() === 0) { @@ -10,19 +11,38 @@ function prettyPrintAmount(n?: number | bigint): string { return n.toLocaleString() } -export default function BalanceBox() { +function LoadingShimmer() { + return (
+

+
+

+

+
+

+
) +} + +export default function BalanceBox(props: { loading?: boolean }) { const [state, actions] = useMegaStore(); + const emptyBalance = () => (state.balance?.confirmed || 0n) === 0n && (state.balance?.lightning || 0n) === 0n + + const navigate = useNavigate() + return ( <> - + }> + + Syncing}> -
- -
+ }> +
+ +
+
@@ -37,8 +57,8 @@ export default function BalanceBox() {
- Send - Receive + +
) diff --git a/src/components/layout/Button.tsx b/src/components/layout/Button.tsx index 3bbc2cb..30b60d3 100644 --- a/src/components/layout/Button.tsx +++ b/src/components/layout/Button.tsx @@ -4,7 +4,7 @@ import { Dynamic } from "solid-js/web"; import { A } from "solid-start"; import { LoadingSpinner } from "."; -const button = cva("p-3 rounded-xl font-semibold disabled:opacity-50 disabled:grayscale transition", { +const button = cva("p-3 rounded-xl font-semibold disabled:opacity-50 disabled:grayscale transition", { variants: { // TODO: button hover has to work different than buttonlinks (like disabled state) intent: { @@ -32,7 +32,8 @@ const button = cva("p-3 rounded-xl font-semibold disabled:opacity-50 disabled:g type StyleProps = VariantProps interface ButtonProps extends JSX.ButtonHTMLAttributes, StyleProps { - loading?: boolean + loading?: boolean, + disabled?: boolean, } export const Button: ParentComponent = props => { @@ -42,6 +43,7 @@ export const Button: ParentComponent = props => { return (