Vitron-Front/app/hooks/useStoreOwnership.ts
2026-04-29 01:44:16 +03:30

47 lines
1.3 KiB
TypeScript

import { useEffect } from "react";
import { useNavigate } from "@remix-run/react";
import { useServiceGetProfile } from "../requestHandler/use-profile-hooks";
export function useStoreOwnership(storeId: string | undefined, mode?: string) {
const navigate = useNavigate();
const { data: profileData, isLoading } = useServiceGetProfile();
useEffect(() => {
// Wait for profile data to load
if (isLoading) return;
// If no storeId provided, redirect to home
if (!storeId && mode !== "create") {
navigate("/");
return;
}
// If user doesn't have profile data, redirect to home
if (!profileData) {
navigate("/");
return;
}
// If user doesn't have a seller account, redirect to home
if (!profileData.sellerUsername && mode !== "create") {
navigate("/");
return;
}
// If the storeId doesn't match the user's seller username, redirect to their own store
if (
profileData.sellerUsername !== storeId &&
mode !== "create" &&
storeId
) {
navigate(`/store/${profileData.sellerUsername}`);
return;
}
}, [profileData, storeId, isLoading, navigate, mode]);
return {
isOwner: profileData?.sellerUsername === storeId,
isLoading,
userStoreId: profileData?.sellerUsername,
};
}