From 09a041eef0b868a48bcde8bd608dbb8d74ff05f7 Mon Sep 17 00:00:00 2001 From: master1lan <278457198@qq.com> Date: Sat, 14 Jan 2023 15:25:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8A=A0=E8=BD=BD=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/image/image.module.less | 4 +-- src/components/image/index.tsx | 12 +++++-- src/routers/layout/header.tsx | 2 -- src/routers/layout/nav/index.tsx | 36 +++++++++++---------- src/routers/layout/nav/nav.module.less | 4 +-- src/routers/video/item/icon.tsx | 8 ++++- src/routers/video/item/index.tsx | 2 -- src/routers/video/item/item.module.less | 13 +++----- src/routers/video/item/videodata.tsx | 42 +++++++++++++++++-------- src/routers/video/item/videoinfo.tsx | 6 ++-- src/routers/video/masonry.tsx | 13 ++------ src/routers/video/video.module.less | 5 +-- src/utils/hooks/match.ts | 2 +- 13 files changed, 83 insertions(+), 66 deletions(-) diff --git a/src/components/image/image.module.less b/src/components/image/image.module.less index 71b219c..48f3088 100644 --- a/src/components/image/image.module.less +++ b/src/components/image/image.module.less @@ -14,8 +14,6 @@ transition: transform .3s linear; aspect-ratio: 16/9; - &:hover { - transform: scale(1.1); - } + &:hover {} } } \ No newline at end of file diff --git a/src/components/image/index.tsx b/src/components/image/index.tsx index 769145c..70d1da3 100644 --- a/src/components/image/index.tsx +++ b/src/components/image/index.tsx @@ -11,6 +11,7 @@ import { fallbackUrl as DefaultFallbackUrl, ImageSize, } from "./tool"; +import { styled } from "@mui/material"; /** * @description 图片预加载hook @@ -88,7 +89,7 @@ export function ImageBasic({ return ( {({ inView, ref, entry }) => ( -
+ <>{observer && inView && once_callback(inView)} {children} -
+ )}
); } + +const BorderDiv = styled("div")(({ theme }) => ({ + borderRadius: "8px", + [theme.breakpoints.down("sm")]: { + borderRadius: "4px", + }, +})); diff --git a/src/routers/layout/header.tsx b/src/routers/layout/header.tsx index 5c8873f..04408e1 100644 --- a/src/routers/layout/header.tsx +++ b/src/routers/layout/header.tsx @@ -1,9 +1,7 @@ import SearchSharpIcon from "@mui/icons-material/SearchSharp"; import { Form } from "react-router-dom"; -import Header_Nav from "./nav"; import styles from "./layout.module.less"; import { useFocus } from "./hooks"; -import RouterNav from "./routernav"; import LOGO from "./logo"; import RightSide from "./rightSide"; export default function Header() { diff --git a/src/routers/layout/nav/index.tsx b/src/routers/layout/nav/index.tsx index 655c023..6bf1885 100644 --- a/src/routers/layout/nav/index.tsx +++ b/src/routers/layout/nav/index.tsx @@ -1,4 +1,4 @@ -import { Chip, Stack } from "@mui/material"; +import { Button, Stack } from "@mui/material"; import { useInView } from "react-intersection-observer"; import SegmentIcon from "@mui/icons-material/Segment"; import CloseFullscreenIcon from "@mui/icons-material/CloseFullscreen"; @@ -42,7 +42,7 @@ export default function Header_Nav() { // 触摸屏幕 useSensor(TouchSensor, { activationConstraint: { - delay: 100, + delay: 500, tolerance: 5, }, }) @@ -153,21 +153,25 @@ const NavTagChipItem: FC = memo((props) => { const clicked = useAppSelector(selectActiveTags).some( (item) => item.id === props.id ), - dispatch = useAppDispatch(); + dispatch = useAppDispatch(), + handerclick = () => { + if (clicked) { + dispatch(handerDeleteTag(props)); + } else { + dispatch(handerAddTag(props)); + } + }; + //todo 修改颜色 return ( - { - if (clicked) { - dispatch(handerDeleteTag(props)); - } else { - dispatch(handerAddTag(props)); - } + ); }); -//todo:修复展示更多栏的bug -//todo:拆分组件 diff --git a/src/routers/layout/nav/nav.module.less b/src/routers/layout/nav/nav.module.less index 51817cc..e793460 100644 --- a/src/routers/layout/nav/nav.module.less +++ b/src/routers/layout/nav/nav.module.less @@ -1,7 +1,7 @@ .nav { position: relative; overflow: hidden; - margin: 10px; + margin: 10px 0; background-color: #fff; .navstack { @@ -46,7 +46,7 @@ position: absolute; right: 0; bottom: 0; - height: 40px; + height: 100%; display: flex; justify-items: center; align-items: center; diff --git a/src/routers/video/item/icon.tsx b/src/routers/video/item/icon.tsx index 412bb22..e2a4713 100644 --- a/src/routers/video/item/icon.tsx +++ b/src/routers/video/item/icon.tsx @@ -54,7 +54,13 @@ export const UPIcon: FC<{ /> - + UP diff --git a/src/routers/video/item/index.tsx b/src/routers/video/item/index.tsx index 210e123..30efc7b 100644 --- a/src/routers/video/item/index.tsx +++ b/src/routers/video/item/index.tsx @@ -57,5 +57,3 @@ export const VideoRouterImageCard: FC<{ data: VideoRouterImageCardType }> = ({ ); }; -//todo 传统的两行有兼容问题,修改 -//todo 使用redux替换preview diff --git a/src/routers/video/item/item.module.less b/src/routers/video/item/item.module.less index ca29190..7df84e1 100644 --- a/src/routers/video/item/item.module.less +++ b/src/routers/video/item/item.module.less @@ -33,13 +33,6 @@ display: flex; align-items: center; - &>span { - font-size: 13px; - display: flex; - align-items: center; - - } - &>span:not(:last-of-type) { margin-right: 12px; } @@ -47,6 +40,10 @@ } .video-info { + flex: 1; + display: flex; + flex-flow: column nowrap; + justify-content: space-between; &>*:not(:first-child) { margin-top: 5px; @@ -63,7 +60,7 @@ text-overflow: ellipsis; line-break: anywhere; -webkit-line-clamp: 2; - word-wrap: break-all; + word-break: break-all; &:hover, &:active { diff --git a/src/routers/video/item/videodata.tsx b/src/routers/video/item/videodata.tsx index ca34d7c..d7b1b80 100644 --- a/src/routers/video/item/videodata.tsx +++ b/src/routers/video/item/videodata.tsx @@ -1,6 +1,7 @@ import { useScreenSize } from "@components/proview/screenSize"; import SlideshowIcon from "@mui/icons-material/Slideshow"; import SubjectSharpIcon from "@mui/icons-material/SubjectSharp"; +import { styled } from "@mui/material"; import getFixedNumber from "@utils/number"; import { getVideoTime } from "@utils/time"; import { FC } from "react"; @@ -10,30 +11,45 @@ export const VideoData: FC< Pick > = (props) => { const { view, danmaku, duration } = props; - const { sm } = useScreenSize(); return (
- + {getFixedNumber(view)} - - {sm && ( - - - {getFixedNumber(danmaku)} - - )} + + + + + {getFixedNumber(danmaku)} +
{getVideoTime(duration)}
); }; + +const SizeSpan = styled("span")(({ theme }) => ({ + fontSize: "13px", + alignItems: "center", + display: "flex", + [theme.breakpoints.down("sm")]: { + fontSize: "11px", + }, +})); diff --git a/src/routers/video/item/videoinfo.tsx b/src/routers/video/item/videoinfo.tsx index 607fea6..b81c0a2 100644 --- a/src/routers/video/item/videoinfo.tsx +++ b/src/routers/video/item/videoinfo.tsx @@ -23,6 +23,7 @@ export const VideoInfo: FC<
+ {/* todo 这里在手机端没对齐 */} {name} {matchsmSize && {getrealtiveTime(pubdate * 1000)}} @@ -35,11 +36,8 @@ export const VideoInfo: FC< const DataP = styled("p")(({ theme }) => ({ fontSize: "15px", - height: "40px", - lineHeight: "20px", + margin: "5px 0", [theme.breakpoints.down("sm")]: { fontSize: "13px", - height: "30px", - lineHeight: "15px", }, })); diff --git a/src/routers/video/masonry.tsx b/src/routers/video/masonry.tsx index ba00764..43785c5 100644 --- a/src/routers/video/masonry.tsx +++ b/src/routers/video/masonry.tsx @@ -76,6 +76,7 @@ export default function VideoMasonry(props: { q?: string }) { sm: 1, xs: 1, }} + rowSpacing={2} columns={{ lg: 10, md: 8, @@ -113,16 +114,8 @@ const LoadingSkeleton: FC<{ num: number }> = ({ num = 0 }) => {
- -
- - -
+ +
))} diff --git a/src/routers/video/video.module.less b/src/routers/video/video.module.less index b30f277..2bf6bdd 100644 --- a/src/routers/video/video.module.less +++ b/src/routers/video/video.module.less @@ -6,8 +6,9 @@ .skeleton-content { display: flex; + align-items: center; - .skeleton-info { - flex: 1; + &>span:last-of-type { + margin-left: 5px; } } \ No newline at end of file diff --git a/src/utils/hooks/match.ts b/src/utils/hooks/match.ts index 569c53b..aade130 100644 --- a/src/utils/hooks/match.ts +++ b/src/utils/hooks/match.ts @@ -5,7 +5,7 @@ import { Breakpoint, useMediaQuery, useTheme } from "@mui/material"; */ export const useScreenMatchSize = (size: Breakpoint) => { const theme = useTheme(); - const matchSize = useMediaQuery(theme.breakpoints.up(size)); + const matchSize = useMediaQuery(theme.breakpoints.down(size)); return matchSize; }; //个人主页头像大小