From 794d37634827dbc261efe94a633228374c72429a Mon Sep 17 00:00:00 2001 From: GyDi Date: Sat, 19 Feb 2022 00:23:47 +0800 Subject: [PATCH] feat: adjust profile item ui --- src/assets/styles/index.scss | 1 + src/components/profile/profile-item.tsx | 86 ++++++++++++++----------- 2 files changed, 48 insertions(+), 39 deletions(-) diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index bda856d..10c6c25 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -4,6 +4,7 @@ body { "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; -webkit-font-smoothing: antialiased; + user-select: none; } :root { diff --git a/src/components/profile/profile-item.tsx b/src/components/profile/profile-item.tsx index 76ea37b..0fd587f 100644 --- a/src/components/profile/profile-item.tsx +++ b/src/components/profile/profile-item.tsx @@ -59,8 +59,11 @@ const ProfileItem: React.FC = (props) => { const progress = Math.round(((download + upload) * 100) / (total + 0.1)); const fromnow = updated > 0 ? dayjs(updated * 1000).fromNow() : ""; - // url or file mode - const isUrlMode = itemData.url && extra; + // local file mode + // remote file mode + // subscription url mode + const hasUrl = !!itemData.url; + const hasExtra = !!extra; // only subscription url has extra info const onView = async () => { setAnchorEl(null); @@ -178,7 +181,8 @@ const ProfileItem: React.FC = (props) => { {name} - {isUrlMode && ( + {/* only if has url can it be updated */} + {hasUrl && ( = (props) => { )} - {isUrlMode ? ( - <> - - - {from} - + {/* the second line show url's info or description */} + {hasUrl ? ( + + + {from} + - - {fromnow} - - - - - - {parseTraffic(upload + download)} / {parseTraffic(total)} - - {expire} - - + + {fromnow} + + ) : ( - <> - - - {itemData.desc} - - + + + {itemData.desc} + + + )} - - {parseExpire(updated)} - - + {/* the third line show extra info or last updated time */} + {hasExtra ? ( + + + {parseTraffic(upload + download)} / {parseTraffic(total)} + + {expire} + + ) : ( + + {parseExpire(updated)} + )} = (props) => { anchorPosition={position} anchorReference="anchorPosition" > - {(isUrlMode ? urlModeMenu : fileModeMenu).map((item) => ( - + {(hasUrl ? urlModeMenu : fileModeMenu).map((item) => ( + {item.label} ))}