feat: refactor

This commit is contained in:
Zamitto 2024-07-17 18:17:32 -03:00
parent 6d277cd1d8
commit 8c67dda84e
8 changed files with 44 additions and 44 deletions

View file

@ -249,6 +249,7 @@
"sending": "Sending", "sending": "Sending",
"friend_request_sent": "Friend request sent", "friend_request_sent": "Friend request sent",
"friends": "Friends", "friends": "Friends",
"friends_list": "Friends list" "friends_list": "Friends list",
"user_not_found": "User not found"
} }
} }

View file

@ -249,6 +249,7 @@
"friends": "Amigos", "friends": "Amigos",
"add": "Adicionar", "add": "Adicionar",
"sending": "Enviando", "sending": "Enviando",
"friends_list": "Lista de amigos" "friends_list": "Lista de amigos",
"user_not_found": "Usuário não encontrado"
} }
} }

View file

@ -40,10 +40,10 @@ export function App() {
const { clearDownload, setLastPacket } = useDownload(); const { clearDownload, setLastPacket } = useDownload();
const { const {
showFriendsModal, isFriendsModalVisible,
friendRequetsModalTab, friendRequetsModalTab,
setShowFriendsModal,
updateFriendRequests, updateFriendRequests,
hideFriendsModal,
} = useUserDetails(); } = useUserDetails();
const { fetchUserDetails, updateUserDetails, clearUserDetails } = const { fetchUserDetails, updateUserDetails, clearUserDetails } =
@ -219,9 +219,9 @@ export function App() {
/> />
<UserFriendModal <UserFriendModal
visible={showFriendsModal} visible={isFriendsModalVisible}
initialTab={friendRequetsModalTab} initialTab={friendRequetsModalTab}
onClose={() => setShowFriendsModal(false, null)} onClose={hideFriendsModal}
/> />
<main> <main>

View file

@ -13,12 +13,8 @@ export function SidebarProfile() {
const { t } = useTranslation("sidebar"); const { t } = useTranslation("sidebar");
const { const { userDetails, profileBackground, friendRequests, showFriendsModal } =
userDetails, useUserDetails();
profileBackground,
friendRequests,
setShowFriendsModal,
} = useUserDetails();
const { gameRunning } = useAppSelector((state) => state.gameRunning); const { gameRunning } = useAppSelector((state) => state.gameRunning);
@ -88,9 +84,7 @@ export function SidebarProfile() {
<button <button
type="button" type="button"
className={styles.friendRequestButton} className={styles.friendRequestButton}
onClick={() => onClick={() => showFriendsModal(UserFriendModalTab.AddFriend)}
setShowFriendsModal(true, UserFriendModalTab.AddFriend)
}
> >
<PersonAddIcon size={24} /> <PersonAddIcon size={24} />
{friendRequests.length} {friendRequests.length}

View file

@ -6,7 +6,7 @@ export interface UserDetailsState {
userDetails: UserDetails | null; userDetails: UserDetails | null;
profileBackground: null | string; profileBackground: null | string;
friendRequests: FriendRequest[]; friendRequests: FriendRequest[];
showFriendsModal: boolean; isFriendsModalVisible: boolean;
friendRequetsModalTab: UserFriendModalTab | null; friendRequetsModalTab: UserFriendModalTab | null;
} }
@ -14,7 +14,7 @@ const initialState: UserDetailsState = {
userDetails: null, userDetails: null,
profileBackground: null, profileBackground: null,
friendRequests: [], friendRequests: [],
showFriendsModal: false, isFriendsModalVisible: false,
friendRequetsModalTab: null, friendRequetsModalTab: null,
}; };
@ -31,15 +31,17 @@ export const userDetailsSlice = createSlice({
setFriendRequests: (state, action: PayloadAction<FriendRequest[]>) => { setFriendRequests: (state, action: PayloadAction<FriendRequest[]>) => {
state.friendRequests = action.payload; state.friendRequests = action.payload;
}, },
setshowFriendsModal: (state, action: PayloadAction<boolean>) => { setFriendsModalVisible: (
state.showFriendsModal = action.payload;
},
setFriendRequestsModal: (
state, state,
action: PayloadAction<UserFriendModalTab | null> action: PayloadAction<UserFriendModalTab>
) => { ) => {
state.isFriendsModalVisible = true;
state.friendRequetsModalTab = action.payload; state.friendRequetsModalTab = action.payload;
}, },
setFriendsModalHidden: (state) => {
state.isFriendsModalVisible = false;
state.friendRequetsModalTab = null;
},
}, },
}); });
@ -47,6 +49,6 @@ export const {
setUserDetails, setUserDetails,
setProfileBackground, setProfileBackground,
setFriendRequests, setFriendRequests,
setshowFriendsModal, setFriendsModalVisible,
setFriendRequestsModal, setFriendsModalHidden,
} = userDetailsSlice.actions; } = userDetailsSlice.actions;

View file

@ -6,8 +6,8 @@ import {
setProfileBackground, setProfileBackground,
setUserDetails, setUserDetails,
setFriendRequests, setFriendRequests,
setshowFriendsModal, setFriendsModalVisible,
setFriendRequestsModal, setFriendsModalHidden,
} from "@renderer/features"; } from "@renderer/features";
import { darkenColor } from "@renderer/helpers"; import { darkenColor } from "@renderer/helpers";
import { FriendRequestAction, UserDetails } from "@types"; import { FriendRequestAction, UserDetails } from "@types";
@ -20,7 +20,7 @@ export function useUserDetails() {
userDetails, userDetails,
profileBackground, profileBackground,
friendRequests, friendRequests,
showFriendsModal, isFriendsModalVisible,
friendRequetsModalTab, friendRequetsModalTab,
} = useAppSelector((state) => state.userDetails); } = useAppSelector((state) => state.userDetails);
@ -94,18 +94,18 @@ export function useUserDetails() {
dispatch(setFriendRequests(friendRequests || [])); dispatch(setFriendRequests(friendRequests || []));
}, [dispatch]); }, [dispatch]);
const setShowFriendsModal = useCallback( const showFriendsModal = useCallback(
(showModal: boolean, tab: UserFriendModalTab | null) => { (tab: UserFriendModalTab) => {
dispatch(setFriendRequestsModal(tab)); dispatch(setFriendsModalVisible(tab));
dispatch(setshowFriendsModal(showModal)); updateFriendRequests();
if (showModal) {
updateFriendRequests();
}
}, },
[dispatch] [dispatch]
); );
const hideFriendsModal = useCallback(() => {
dispatch(setFriendsModalHidden());
}, [dispatch]);
const sendFriendRequest = useCallback( const sendFriendRequest = useCallback(
async (userId: string) => { async (userId: string) => {
return window.electron return window.electron
@ -128,8 +128,10 @@ export function useUserDetails() {
userDetails, userDetails,
profileBackground, profileBackground,
friendRequests, friendRequests,
showFriendsModal,
friendRequetsModalTab, friendRequetsModalTab,
isFriendsModalVisible,
showFriendsModal,
hideFriendsModal,
fetchUserDetails, fetchUserDetails,
signOut, signOut,
clearUserDetails, clearUserDetails,
@ -138,6 +140,5 @@ export function useUserDetails() {
sendFriendRequest, sendFriendRequest,
updateFriendRequests, updateFriendRequests,
updateFriendRequestState, updateFriendRequestState,
setShowFriendsModal,
}; };
} }

View file

@ -37,7 +37,7 @@ export function UserContent({
profileBackground, profileBackground,
signOut, signOut,
updateFriendRequests, updateFriendRequests,
setShowFriendsModal, showFriendsModal,
} = useUserDetails(); } = useUserDetails();
const { showSuccessToast } = useToast(); const { showSuccessToast } = useToast();
@ -332,9 +332,7 @@ export function UserContent({
<div className={styles.friendsSection}> <div className={styles.friendsSection}>
<button <button
className={styles.friendsSectionHeader} className={styles.friendsSectionHeader}
onClick={() => onClick={() => showFriendsModal(UserFriendModalTab.FriendsList)}
setShowFriendsModal(true, UserFriendModalTab.FriendsList)
}
> >
<h2>{t("friends")}</h2> <h2>{t("friends")}</h2>
@ -390,7 +388,7 @@ export function UserContent({
<Button <Button
theme="outline" theme="outline"
onClick={() => onClick={() =>
setShowFriendsModal(true, UserFriendModalTab.AddFriend) showFriendsModal(UserFriendModalTab.AddFriend)
} }
> >
<PlusIcon /> {t("add")} <PlusIcon /> {t("add")}

View file

@ -8,12 +8,15 @@ import { UserContent } from "./user-content";
import { SkeletonTheme } from "react-loading-skeleton"; import { SkeletonTheme } from "react-loading-skeleton";
import { vars } from "@renderer/theme.css"; import { vars } from "@renderer/theme.css";
import * as styles from "./user.css"; import * as styles from "./user.css";
import { useTranslation } from "react-i18next";
export const User = () => { export const User = () => {
const { userId } = useParams(); const { userId } = useParams();
const [userProfile, setUserProfile] = useState<UserProfile>(); const [userProfile, setUserProfile] = useState<UserProfile>();
const navigate = useNavigate(); const navigate = useNavigate();
const { t } = useTranslation("user_profile");
const { showErrorToast } = useToast(); const { showErrorToast } = useToast();
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
@ -24,11 +27,11 @@ export const User = () => {
dispatch(setHeaderTitle(userProfile.displayName)); dispatch(setHeaderTitle(userProfile.displayName));
setUserProfile(userProfile); setUserProfile(userProfile);
} else { } else {
showErrorToast("Usuário não encontrado"); showErrorToast(t("user_not_found"));
navigate(-1); navigate(-1);
} }
}); });
}, [dispatch, userId]); }, [dispatch, userId, t]);
useEffect(() => { useEffect(() => {
getUserProfile(); getUserProfile();