feat: add stock pages and ticker navigation
Add stock search and detail pages with charts, dividends and shared event rows. Use verified ticker links for portfolio names and logos, numeric dates and refreshed account cards. Update the generated API contract.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Button, Stack, Title } from "@mantine/core";
|
||||
import { Button, Stack, Text, Title } from "@mantine/core";
|
||||
import type { FC } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { Link } from "react-router";
|
||||
@@ -19,8 +19,13 @@ const AccountsPageLoaded: FC<AccountsPageLoadedProps> = (props) => {
|
||||
const { accounts, ...refresh } = props;
|
||||
const { t } = useTranslation();
|
||||
return (
|
||||
<Stack>
|
||||
<Title order={1}>{t("accounts.title")}</Title>
|
||||
<Stack gap="lg">
|
||||
<Stack gap={4}>
|
||||
<Title order={1}>{t("accounts.title")}</Title>
|
||||
<Text c="dimmed" size="sm">
|
||||
{t("accounts.subtitle")}
|
||||
</Text>
|
||||
</Stack>
|
||||
<AccountsRefreshState {...refresh} />
|
||||
<Button
|
||||
component={Link}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Skeleton } from "@mantine/core";
|
||||
import { Card, Group, SimpleGrid, Skeleton, Stack } from "@mantine/core";
|
||||
import type { FC } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { LoadingSkeleton } from "@/shared/ui";
|
||||
@@ -8,9 +8,28 @@ const AccountsPageLoading: FC = () => {
|
||||
return (
|
||||
<LoadingSkeleton label={t("states.loadingTitle")}>
|
||||
<Skeleton height={32} width="30%" />
|
||||
{[0, 1, 2].map((index) => (
|
||||
<Skeleton key={index} height={116} radius="md" />
|
||||
))}
|
||||
<Skeleton height={20} width="45%" />
|
||||
<SimpleGrid cols={{ base: 1, lg: 2 }} spacing="lg" aria-hidden="true">
|
||||
{[0, 1].map((index) => (
|
||||
<Card key={index} padding="xl" radius="lg" withBorder>
|
||||
<Stack gap="xl">
|
||||
<Stack gap="sm">
|
||||
<Skeleton height={24} width="35%" />
|
||||
<Skeleton height={28} width="65%" />
|
||||
</Stack>
|
||||
<Stack gap="xs">
|
||||
<Skeleton height={16} width="30%" />
|
||||
<Skeleton height={40} width="60%" />
|
||||
</Stack>
|
||||
<Group grow>
|
||||
<Skeleton height={56} />
|
||||
<Skeleton height={56} />
|
||||
</Group>
|
||||
<Skeleton height={20} />
|
||||
</Stack>
|
||||
</Card>
|
||||
))}
|
||||
</SimpleGrid>
|
||||
</LoadingSkeleton>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user