From 3ecd1559bf8dd0b562adc6043f0b82780387007f Mon Sep 17 00:00:00 2001 From: gman Date: Sat, 11 Nov 2023 12:44:44 +0300 Subject: [PATCH] fix: mobile version --- src/ArticleCard.tsx | 6 +-- src/ArticleCardMobile.tsx | 80 +++++++++++++++++++++++++++++ src/Header.tsx | 105 +++++++++++++++++++++++++++++++------- src/KartaPage.tsx | 64 +++++++++++++++++++++++ 4 files changed, 233 insertions(+), 22 deletions(-) create mode 100644 src/ArticleCardMobile.tsx diff --git a/src/ArticleCard.tsx b/src/ArticleCard.tsx index fbfd74f..eeaf8f4 100644 --- a/src/ArticleCard.tsx +++ b/src/ArticleCard.tsx @@ -59,11 +59,11 @@ export function ArticleCardVertical({ return ( - + - + {/* {category} - + */} {title} diff --git a/src/ArticleCardMobile.tsx b/src/ArticleCardMobile.tsx new file mode 100644 index 0000000..b4d41eb --- /dev/null +++ b/src/ArticleCardMobile.tsx @@ -0,0 +1,80 @@ +import { createStyles, Card, Image, Stack, Text, Group, Flex } from '@mantine/core'; +import globe from './assets/globe.png' + + +const useStyles = createStyles((theme) => ({ + card: { + backgroundColor: theme.white, + }, + + title: { + fontWeight: 700, + fontFamily: theme.fontFamily, + lineHeight: 1.2, + '&:hover': { + color: '#eb7b1a' + } + }, + + body: { + padding: theme.spacing.md, + }, + + address: { + "&:hover": { + cursor: "pointer", + filter: 'brightness(0) saturate(100%) invert(50%) sepia(92%) saturate(1223%) hue-rotate(352deg) brightness(97%) contrast(91%)' + } + } +})); + +interface ArticleCardVerticalProps { + id: number; + image: string; + category: string; + title: string; + address: string; + longitude: number; + latitude: number; + selected: number; + // author: { + // name: string; + // avatar: string; + // }; +} + +export function ArticleCardMobile({ + id, + image, + category, + title, + address, + longitude, + latitude, + // author, + selected, + clickAddressAction +}: ArticleCardVerticalProps) { + const { classes } = useStyles(); + return ( + + + {/* */} + + + {title} + + clickAddressAction(id)} className={classes.address}> + {/* */} + + + {address} +
+ {`${longitude.toFixed(3).replace('.', ',')}° ${latitude.toFixed(3).replace('.', ',')}°`} +
+
+
+
+
+ ); +} diff --git a/src/Header.tsx b/src/Header.tsx index 53aef36..aad13a6 100644 --- a/src/Header.tsx +++ b/src/Header.tsx @@ -9,6 +9,7 @@ import { Image, Menu, Dialog, + Stack, } from "@mantine/core"; import { IconExternalLink } from "@tabler/icons-react"; import { useDisclosure } from "@mantine/hooks"; @@ -23,7 +24,13 @@ const useStyles = createStyles((theme) => ({ }, links: { - [theme.fn.smallerThan("xs")]: { + [theme.fn.smallerThan("md")]: { + display: "none", + }, + }, + + linksmobile: { + [theme.fn.largerThan("md")]: { display: "none", }, }, @@ -35,9 +42,9 @@ const useStyles = createStyles((theme) => ({ }, burger: { - // [theme.fn.largerThan("xs")]: { - display: "none", - // } + [theme.fn.largerThan("md")]: { + display: "none", + }, }, link: { @@ -73,8 +80,7 @@ interface HeaderSimpleProps { } export function HeaderSimple({ links }: HeaderSimpleProps) { - // const [opened, { toggle }] = useDisclosure(false); - const [opened, { toggle, close }] = useDisclosure(true); + const [openedMenu, menuactions] = useDisclosure(false); const [active, setActive] = useState(""); const { classes, cx } = useStyles(); @@ -99,23 +105,84 @@ export function HeaderSimple({ links }: HeaderSimpleProps) { return (
- - Полная версия портала доступна с компьютера - {/* <Anchor href='/' inherit={true} color='black' underline={false}>Литературные музеи России</Anchor> */} {/* */} + {/* Menu for mobile */} + + + + + { + e.preventDefault(); + // setActive("#authors"); + }} + > + Авторы + + + + + + } + component="a" + href="https://bigenc.ru/c/ostrovskii-aleksandr-nikolaevich-c697e2" + target="_blank" + > + Островский + + + } + component="a" + href="https://bigenc.ru/c/prishvin-mikhail-mikhailovich-893107" + target="_blank" + > + Пришвин + + + } + component="a" + href="https://bigenc.ru/c/briusov-valerii-iakovlevich-fc6a35" + target="_blank" + > + Брюсов + + + + {items} + + + + {/* Menu for pc */} @@ -177,8 +244,8 @@ export function HeaderSimple({ links }: HeaderSimpleProps) { diff --git a/src/KartaPage.tsx b/src/KartaPage.tsx index fc431cf..f956ffe 100644 --- a/src/KartaPage.tsx +++ b/src/KartaPage.tsx @@ -1,5 +1,6 @@ import { Paper, Flex, ScrollArea, Autocomplete, Title } from "@mantine/core"; import { ArticleCardVertical } from "./ArticleCard"; +import { ArticleCardMobile } from "./ArticleCardMobile"; import Map, { Source, Layer, @@ -292,6 +293,69 @@ export function KartaPage() { /> + {/* Search mobile */} + + + + + {articles !== null && + articles.length > 0 && + articles.map((article) => ( + + ))} + + + + + {/* Search pc */}