fix: style in mobile

This commit is contained in:
2024-03-27 11:01:50 +08:00
parent 0c470c0837
commit 0373d0a658
4 changed files with 28 additions and 6 deletions

View File

@@ -3,7 +3,7 @@ import { useEffect, useState } from "react";
import { useSearchParams } from "react-router-dom"; import { useSearchParams } from "react-router-dom";
import { useOptionsState } from "@/store/module/options"; import { useOptionsState } from "@/store/module/options";
import { useDebounceCallback } from "@mantine/hooks"; import { useDebounceCallback, useMediaQuery } from "@mantine/hooks";
import { merge } from "lodash"; import { merge } from "lodash";
import { SearchApi } from "./api"; import { SearchApi } from "./api";
@@ -17,6 +17,7 @@ export function usePaginationData<T>(query: ZincQueryForSDK) {
const [data, setData] = useState<T[]>([]); const [data, setData] = useState<T[]>([]);
const [take, _] = useState(parseInt(params.get("size") || "10")); const [take, _] = useState(parseInt(params.get("size") || "10"));
const [page, setPage] = useState(parseInt(params.get("page") || "1")); const [page, setPage] = useState(parseInt(params.get("page") || "1"));
const isMobile = useMediaQuery("(max-width: 768px)");
const update = useDebounceCallback(async function update() { const update = useDebounceCallback(async function update() {
console.log("query", query, page, take, options); console.log("query", query, page, take, options);
@@ -60,6 +61,7 @@ export function usePaginationData<T>(query: ZincQueryForSDK) {
page, page,
pagination: ( pagination: (
<Pagination <Pagination
size={isMobile ? "sm" : "md"}
total={Math.ceil(total / take)} total={Math.ceil(total / take)}
onChange={setPage} onChange={setPage}
value={page} value={page}

View File

@@ -3,6 +3,7 @@ import {
AppShell, AppShell,
Avatar, Avatar,
Button, Button,
Center,
Group, Group,
Text, Text,
TextInput, TextInput,
@@ -17,7 +18,7 @@ import { TitleContext } from "@/component/Header/Header";
import Loading from "@/page/Loading"; import Loading from "@/page/Loading";
import { useForm } from "@mantine/form"; import { useForm } from "@mantine/form";
import { useHeadroom, useWindowScroll } from "@mantine/hooks"; import { useHeadroom, useMediaQuery, useWindowScroll } from "@mantine/hooks";
import { IconArrowUp, IconSearch, IconSettings } from "@tabler/icons-react"; import { IconArrowUp, IconSearch, IconSettings } from "@tabler/icons-react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
@@ -26,6 +27,7 @@ export default function MainLayout() {
const pinned = useHeadroom({ fixedAt: 60 }); const pinned = useHeadroom({ fixedAt: 60 });
const [scroll, scrollTo] = useWindowScroll(); const [scroll, scrollTo] = useWindowScroll();
const isMobile = useMediaQuery("(max-width: 768px)");
const navigate = useNavigate(); const navigate = useNavigate();
@@ -56,9 +58,11 @@ export default function MainLayout() {
<Avatar fw={700} component={Link} to="/"> <Avatar fw={700} component={Link} to="/">
DS DS
</Avatar> </Avatar>
<Text size="lg" fw={700} ml="sm"> {!isMobile && (
{title} <Text size="lg" fw={700} ml="sm">
</Text> {title}
</Text>
)}
</Group> </Group>
<Group> <Group>
@@ -75,7 +79,9 @@ export default function MainLayout() {
/> />
</form> </form>
<UnstyledButton component={Link} to="/settings"> <UnstyledButton component={Link} to="/settings">
<IconSettings /> <Center>
<IconSettings />
</Center>
</UnstyledButton> </UnstyledButton>
</Group> </Group>
</Group> </Group>

View File

@@ -1,3 +1,4 @@
import { TitleContext } from "@/component/Header/Header";
import { import {
Badge, Badge,
Container, Container,
@@ -8,6 +9,7 @@ import {
} from "@mantine/core"; } from "@mantine/core";
import dayjs from "dayjs"; import dayjs from "dayjs";
import relativeTime from "dayjs/plugin/relativeTime"; import relativeTime from "dayjs/plugin/relativeTime";
import { useContext, useEffect } from "react";
import { useLoaderData } from "react-router"; import { useLoaderData } from "react-router";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
@@ -53,8 +55,13 @@ function stripStyles(content: string) {
dayjs.extend(relativeTime); dayjs.extend(relativeTime);
export default function ParagraphPage() { export default function ParagraphPage() {
const [_title, setTitle] = useContext(TitleContext);
const paragraph = useLoaderData() as Paragraph; const paragraph = useLoaderData() as Paragraph;
useEffect(() => {
setTitle(paragraph.title);
}, [setTitle, paragraph.title]);
return ( return (
<Container py="2rem"> <Container py="2rem">
<Title>{paragraph.title}</Title> <Title>{paragraph.title}</Title>

View File

@@ -51,6 +51,13 @@ export default function SettingsPage() {
/> />
), ),
}, },
{
title: "Made By",
description: "Yoshino-s",
value: (
<a href="https://github.com/yoshino-s">https://github.com/yoshino-s</a>
),
},
]; ];
return ( return (