Renamed query hooks. Fixed conversion bugs.

This commit is contained in:
Mike Cao 2025-03-22 03:48:18 -07:00
parent adca3c36d0
commit 7886c3f393
110 changed files with 423 additions and 489 deletions

View file

@ -1,10 +1,10 @@
'use client';
import { ReactNode } from 'react';
import { useLogin, useMessages } from '@/components/hooks';
import { useLoginQuery, useMessages } from '@/components/hooks';
import { MenuLayout } from '@/components/layout/MenuLayout';
export function SettingsLayout({ children }: { children: ReactNode }) {
const { user } = useLogin();
const { user } = useLoginQuery();
const { formatMessage, labels } = useMessages();
const items = [

View file

@ -1,4 +1,4 @@
import { useLogin, useMessages, useModified } from '@/components/hooks';
import { useLoginQuery, useMessages, useModified } from '@/components/hooks';
import { useRouter } from 'next/navigation';
import { Button, Icon, Icons, Modal, DialogTrigger, Dialog, Text } from '@umami/react-zen';
import { TeamLeaveForm } from './TeamLeaveForm';
@ -6,7 +6,7 @@ import { TeamLeaveForm } from './TeamLeaveForm';
export function TeamLeaveButton({ teamId, teamName }: { teamId: string; teamName: string }) {
const { formatMessage, labels } = useMessages();
const router = useRouter();
const { user } = useLogin();
const { user } = useLoginQuery();
const { touch } = useModified();
const handleLeave = async () => {

View file

@ -1,6 +1,6 @@
import { DataGrid } from '@/components/common/DataGrid';
import { TeamsTable } from '@/app/(main)/settings/teams/TeamsTable';
import { useLogin, useTeams } from '@/components/hooks';
import { useLoginQuery, useTeamsQuery } from '@/components/hooks';
import { ReactNode } from 'react';
export function TeamsDataTable({
@ -12,8 +12,8 @@ export function TeamsDataTable({
showActions?: boolean;
children?: ReactNode;
}) {
const { user } = useLogin();
const queryResult = useTeams(user.id);
const { user } = useLoginQuery();
const queryResult = useTeamsQuery(user.id);
return (
<DataGrid queryResult={queryResult} renderEmpty={() => children}>

View file

@ -1,13 +1,13 @@
import { Row } from '@umami/react-zen';
import { PageHeader } from '@/components/layout/PageHeader';
import { ROLES } from '@/lib/constants';
import { useLogin, useMessages } from '@/components/hooks';
import { useLoginQuery, useMessages } from '@/components/hooks';
import { TeamsJoinButton } from './TeamsJoinButton';
import { TeamsAddButton } from './TeamsAddButton';
export function TeamsHeader({ allowCreate = true }: { allowCreate?: boolean }) {
const { formatMessage, labels } = useMessages();
const { user } = useLogin();
const { user } = useLoginQuery();
const cloudMode = !!process.env.cloudMode;
return (

View file

@ -1,5 +1,5 @@
import { Button, Icon, Icons, Modal, DialogTrigger, Dialog, Text } from '@umami/react-zen';
import { useMessages, useLogin } from '@/components/hooks';
import { useMessages, useLoginQuery } from '@/components/hooks';
import { UserDeleteForm } from './UserDeleteForm';
export function UserDeleteButton({
@ -12,7 +12,7 @@ export function UserDeleteButton({
onDelete?: () => void;
}) {
const { formatMessage, labels } = useMessages();
const { user } = useLogin();
const { user } = useLoginQuery();
return (
<DialogTrigger>

View file

@ -1,5 +1,5 @@
import { DataGrid } from '@/components/common/DataGrid';
import { useUsers } from '@/components/hooks';
import { useUsersQuery } from '@/components/hooks';
import { UsersTable } from './UsersTable';
import { ReactNode } from 'react';
@ -10,7 +10,7 @@ export function UsersDataTable({
showActions?: boolean;
children?: ReactNode;
}) {
const queryResult = useUsers();
const queryResult = useUsersQuery();
return (
<DataGrid queryResult={queryResult} renderEmpty={() => children}>

View file

@ -9,7 +9,7 @@ import {
PasswordField,
useToast,
} from '@umami/react-zen';
import { useApi, useLogin, useMessages, useModified } from '@/components/hooks';
import { useApi, useLoginQuery, useMessages, useModified } from '@/components/hooks';
import { ROLES } from '@/lib/constants';
import { useContext } from 'react';
import { UserContext } from './UserProvider';
@ -18,7 +18,7 @@ export function UserEditForm({ userId, onSave }: { userId: string; onSave?: () =
const { formatMessage, labels, messages, getMessage } = useMessages();
const { post, useMutation } = useApi();
const user = useContext(UserContext);
const { user: login } = useLogin();
const { user: login } = useLoginQuery();
const { toast } = useToast();
const { touch } = useModified();

View file

@ -1,12 +1,12 @@
import { createContext, ReactNode, useEffect } from 'react';
import { Loading } from '@umami/react-zen';
import { useModified, useUser } from '@/components/hooks';
import { useModified, useUserQuery } from '@/components/hooks';
export const UserContext = createContext(null);
export function UserProvider({ userId, children }: { userId: string; children: ReactNode }) {
const { modified } = useModified(`user:${userId}`);
const { data: user, isFetching, isLoading, refetch } = useUser(userId);
const { data: user, isFetching, isLoading, refetch } = useUserQuery(userId);
useEffect(() => {
if (modified) {

View file

@ -1,4 +1,4 @@
import { useMessages, useTeamUrl } from '@/components/hooks';
import { useMessages, useNavigation } from '@/components/hooks';
import { PageHeader } from '@/components/layout/PageHeader';
import { WebsiteAddButton } from './WebsiteAddButton';
@ -8,7 +8,7 @@ export interface WebsitesHeaderProps {
export function WebsitesHeader({ allowCreate = true }: WebsitesHeaderProps) {
const { formatMessage, labels } = useMessages();
const { teamId } = useTeamUrl();
const { teamId } = useNavigation();
return (
<PageHeader title={formatMessage(labels.websites)}>

View file

@ -1,11 +1,11 @@
'use client';
import { useLogin } from '@/components/hooks';
import { useLoginQuery } from '@/components/hooks';
import { WebsitesDataTable } from './WebsitesDataTable';
import { WebsitesHeader } from './WebsitesHeader';
import { ROLES } from '@/lib/constants';
export function WebsitesSettingsPage({ teamId }: { teamId: string }) {
const { user } = useLogin();
const { user } = useLoginQuery();
const canCreate = user.role !== ROLES.viewOnly;
return (

View file

@ -1,7 +1,7 @@
import { ReactNode } from 'react';
import { Row, Text, Icon, Icons, DataTable, DataColumn, Button } from '@umami/react-zen';
import Link from 'next/link';
import { useMessages, useTeamUrl } from '@/components/hooks';
import { useMessages, useNavigation } from '@/components/hooks';
export interface WebsitesTableProps {
data: any[];
@ -20,7 +20,7 @@ export function WebsitesTable({
children,
}: WebsitesTableProps) {
const { formatMessage, labels } = useMessages();
const { renderTeamUrl } = useTeamUrl();
const { renderTeamUrl } = useNavigation();
if (!data?.length) {
return children;

View file

@ -1,6 +1,12 @@
import { Button, Modal, DialogTrigger, Dialog, Column } from '@umami/react-zen';
import { useRouter } from 'next/navigation';
import { useLogin, useMessages, useModified, useTeams, useTeamUrl } from '@/components/hooks';
import {
useLoginQuery,
useMessages,
useModified,
useTeamsQuery,
useNavigation,
} from '@/components/hooks';
import { WebsiteDeleteForm } from './WebsiteDeleteForm';
import { WebsiteResetForm } from './WebsiteResetForm';
import { WebsiteTransferForm } from './WebsiteTransferForm';
@ -9,11 +15,11 @@ import { ROLES } from '@/lib/constants';
export function WebsiteData({ websiteId, onSave }: { websiteId: string; onSave?: () => void }) {
const { formatMessage, labels, messages } = useMessages();
const { user } = useLogin();
const { user } = useLoginQuery();
const { touch } = useModified();
const { teamId, renderTeamUrl } = useTeamUrl();
const { teamId, renderTeamUrl } = useNavigation();
const router = useRouter();
const { result } = useTeams(user.id);
const { result } = useTeamsQuery(user.id);
const canTransferWebsite =
(
!teamId &&

View file

@ -10,7 +10,7 @@ import {
ListItem,
Text,
} from '@umami/react-zen';
import { useApi, useLogin, useMessages, useTeams } from '@/components/hooks';
import { useApi, useLoginQuery, useMessages, useTeamsQuery } from '@/components/hooks';
import { WebsiteContext } from '@/app/(main)/websites/[websiteId]/WebsiteProvider';
import { ROLES } from '@/lib/constants';
@ -23,7 +23,7 @@ export function WebsiteTransferForm({
onSave?: () => void;
onClose?: () => void;
}) {
const { user } = useLogin();
const { user } = useLoginQuery();
const website = useContext(WebsiteContext);
const [teamId, setTeamId] = useState<string>(null);
const { formatMessage, labels, messages } = useMessages();
@ -31,7 +31,7 @@ export function WebsiteTransferForm({
const { mutate, error } = useMutation({
mutationFn: (data: any) => post(`/websites/${websiteId}/transfer`, data),
});
const { result, query } = useTeams(user.id);
const { result, query } = useTeamsQuery(user.id);
const isTeamWebsite = !!website?.teamId;
const items = result.data.filter(({ teamUser }) =>