diff --git a/qwilight-fe/src/avatar/AvatarView.tsx b/qwilight-fe/src/avatar/AvatarView.tsx
index 7af85fd..e511492 100644
--- a/qwilight-fe/src/avatar/AvatarView.tsx
+++ b/qwilight-fe/src/avatar/AvatarView.tsx
@@ -9,8 +9,13 @@
Input,
ListGroup,
ListGroupItem,
+ Nav,
+ NavItem,
+ NavLink,
Progress,
Row,
+ TabContent,
+ TabPane,
} from "reactstrap";
import { useTo } from "taehui-ts/fe-utility";
@@ -74,6 +79,7 @@
} = useAvatarStore();
const { siteAvatarID, isSignedIn, setSignInOpened } = useSiteStore();
+ const [tabPosition, setTabPosition] = useState(0);
const [isLoading, setLoading] = useState(false);
const to = useTo();
@@ -104,27 +110,59 @@
useEffect(() => {
if (avatarID) {
- switch (favoritesTabPosition) {
+ switch (tabPosition) {
case 0:
- getAvatarFavorites5K(t);
+ switch (favoritesTabPosition) {
+ case 0:
+ getAvatarFavorites5K(t);
+ break;
+ case 1:
+ getAvatarFavorites7K(t);
+ break;
+ case 2:
+ getAvatarFavorites9K(t);
+ break;
+ case 3:
+ getAvatarFavorites10K(t);
+ break;
+ case 4:
+ getAvatarFavorites14K(t);
+ break;
+ case 5:
+ getAvatarFavorites24K(t);
+ break;
+ case 6:
+ getAvatarFavorites48K(t);
+ break;
+ }
break;
case 1:
- getAvatarFavorites7K(t);
+ switch (lastsTabPosition) {
+ case 0:
+ getAvatarLasts5K();
+ break;
+ case 1:
+ getAvatarLasts7K();
+ break;
+ case 2:
+ getAvatarLasts9K();
+ break;
+ case 3:
+ getAvatarLasts10K();
+ break;
+ case 4:
+ getAvatarLasts14K();
+ break;
+ case 5:
+ getAvatarLasts24K();
+ break;
+ case 6:
+ getAvatarLasts48K();
+ break;
+ }
break;
case 2:
- getAvatarFavorites9K(t);
- break;
- case 3:
- getAvatarFavorites10K(t);
- break;
- case 4:
- getAvatarFavorites14K(t);
- break;
- case 5:
- getAvatarFavorites24K(t);
- break;
- case 6:
- getAvatarFavorites48K(t);
+ getAvatarWwwLevels();
break;
}
}
@@ -138,38 +176,6 @@
getAvatarFavorites5K,
getAvatarFavorites7K,
getAvatarFavorites9K,
- t,
- ]);
-
- useEffect(() => {
- if (avatarID) {
- switch (lastsTabPosition) {
- case 0:
- getAvatarLasts5K();
- break;
- case 1:
- getAvatarLasts7K();
- break;
- case 2:
- getAvatarLasts9K();
- break;
- case 3:
- getAvatarLasts10K();
- break;
- case 4:
- getAvatarLasts14K();
- break;
- case 5:
- getAvatarLasts24K();
- break;
- case 6:
- getAvatarLasts48K();
- break;
- }
- }
- }, [
- avatarID,
- lastsTabPosition,
getAvatarLasts10K,
getAvatarLasts14K,
getAvatarLasts24K,
@@ -177,17 +183,23 @@
getAvatarLasts5K,
getAvatarLasts7K,
getAvatarLasts9K,
+ getAvatarWwwLevels,
+ lastsTabPosition,
t,
+ tabPosition,
]);
- useEffect(() => {
- getAvatarWwwLevels();
- }, [getAvatarWwwLevels]);
-
const onWant = () => {
to(`/qwilight/avatar/${input}`);
};
+ const getProperties = (i: number) => ({
+ className: tabPosition === i ? "active route" : "route",
+ onClick: () => {
+ setTabPosition(i);
+ },
+ });
+
return (
<>
@@ -378,21 +390,32 @@
-
-
+
+
+
-
-
-
-
+
+
-
-
-
-
+
+
-
-
+
+
>
)}
>
diff --git a/qwilight-fe/src/avatar/FavoritesView.tsx b/qwilight-fe/src/avatar/FavoritesView.tsx
index deea760..7b19b92 100644
--- a/qwilight-fe/src/avatar/FavoritesView.tsx
+++ b/qwilight-fe/src/avatar/FavoritesView.tsx
@@ -1,7 +1,6 @@
import { observer } from "mobx-react-lite";
import { useTranslation } from "react-i18next";
import {
- Badge,
ListGroup,
Nav,
NavItem,
@@ -12,7 +11,6 @@
import { useAvatarStore } from "src/Stores";
import NoteItem from "src/note/NoteItem";
-import { FC, PropsWithChildren, useCallback } from "react";
import { NoteLoading } from "src/Loading";
export default observer(() => {
@@ -44,18 +42,6 @@
},
});
- const FavoriteView = useCallback>(
- ({ children }) => {
- return (
-
- {t("avatarFavoritesText")}
- {children}
-
- );
- },
- [t],
- );
-
return (
<>
-
+
{isFavorites5KLoading ? (
) : (
@@ -111,10 +97,10 @@
),
)
)}
-
+
-
+
{isFavorites7KLoading ? (
) : (
@@ -142,10 +128,10 @@
),
)
)}
-
+
-
+
{isFavorites9KLoading ? (
) : (
@@ -173,10 +159,10 @@
),
)
)}
-
+
-
+
{isFavorites10KLoading ? (
) : (
@@ -204,10 +190,10 @@
),
)
)}
-
+
-
+
{isFavorites14KLoading ? (
) : (
@@ -235,10 +221,10 @@
),
)
)}
-
+
-
+
{isFavorites24KLoading ? (
) : (
@@ -266,10 +252,10 @@
),
)
)}
-
+
-
+
{isFavorites48KLoading ? (
) : (
@@ -297,7 +283,7 @@
),
)
)}
-
+
>
diff --git a/qwilight-fe/src/avatar/LastsView.tsx b/qwilight-fe/src/avatar/LastsView.tsx
index 4ad6954..f21363b 100644
--- a/qwilight-fe/src/avatar/LastsView.tsx
+++ b/qwilight-fe/src/avatar/LastsView.tsx
@@ -1,7 +1,6 @@
import { observer } from "mobx-react-lite";
import { useTranslation } from "react-i18next";
import {
- Badge,
ListGroup,
Nav,
NavItem,
@@ -13,7 +12,6 @@
import { useAvatarStore } from "src/Stores";
import NoteItem from "src/note/NoteItem";
import { NoteLoading } from "src/Loading";
-import { FC, PropsWithChildren, useCallback } from "react";
export default observer(() => {
const {
@@ -45,18 +43,6 @@
},
});
- const LastView = useCallback>(
- ({ children }) => {
- return (
-
- {t("avatarLastsText")}
- {children}
-
- );
- },
- [t],
- );
-
return (
<>
-
+
{isLasts5KLoading ? (
) : (
@@ -112,10 +98,10 @@
),
)
)}
-
+
-
+
{isLasts7KLoading ? (
) : (
@@ -143,10 +129,10 @@
),
)
)}
-
+
-
+
{isLasts9KLoading ? (
) : (
@@ -174,10 +160,10 @@
),
)
)}
-
+
-
+
{isLasts10KLoading ? (
) : (
@@ -205,10 +191,10 @@
),
)
)}
-
+
-
+
{isLasts14KLoading ? (
) : (
@@ -236,10 +222,10 @@
),
)
)}
-
+
-
+
{isLasts24KLoading ? (
) : (
@@ -267,10 +253,10 @@
),
)
)}
-
+
-
+
{isLasts48KLoading ? (
) : (
@@ -298,7 +284,7 @@
),
)
)}
-
+
>
diff --git a/qwilight-fe/src/avatar/WwwLevelItem.tsx b/qwilight-fe/src/avatar/WwwLevelItem.tsx
index 1d637a0..7186c31 100644
--- a/qwilight-fe/src/avatar/WwwLevelItem.tsx
+++ b/qwilight-fe/src/avatar/WwwLevelItem.tsx
@@ -40,7 +40,7 @@
{title} {isLoading && }
- {toDate(date)}
+ {date && {toDate(date)}}
diff --git a/qwilight-fe/src/avatar/WwwLevelsView.tsx b/qwilight-fe/src/avatar/WwwLevelsView.tsx
index 83e81e1..f4437ae 100644
--- a/qwilight-fe/src/avatar/WwwLevelsView.tsx
+++ b/qwilight-fe/src/avatar/WwwLevelsView.tsx
@@ -1,17 +1,14 @@
import { observer } from "mobx-react-lite";
-import { useTranslation } from "react-i18next";
-import { Badge, ListGroup } from "reactstrap";
+import { ListGroup } from "reactstrap";
import WwwLevelItem from "src/avatar/WwwLevelItem";
import { useAvatarStore } from "src/Stores";
import { AvatarWwwLevelLoading } from "src/Loading";
export default observer(() => {
const { wwwLevels, isWwwLevelLoading } = useAvatarStore();
- const { t } = useTranslation();
return (
- {t("wwwLevel")}
{isWwwLevelLoading ? (
) : (