Skip to content

Commit c9ba880

Browse files
fix: improve caching performance and data updater (#622)
1 parent fabd134 commit c9ba880

File tree

4 files changed

+262
-192
lines changed

4 files changed

+262
-192
lines changed

apps/web/src/app/[orgShortcode]/convo/[convoId]/_components/convo-views.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { MessagesPanel } from './messages-panel';
88
import { platform } from '@/src/lib/trpc';
99
import { useMemo, useRef } from 'react';
1010
import { ReplyBox } from './reply-box';
11+
import { ms } from '@u22n/utils/ms';
1112
import { env } from '@/src/env';
1213
import TopBar from './top-bar';
1314
import Link from 'next/link';
@@ -18,10 +19,15 @@ export function ConvoView({ convoId }: { convoId: TypeId<'convos'> }) {
1819
data: convoData,
1920
isLoading: convoDataLoading,
2021
error: convoError
21-
} = platform.convos.getConvo.useQuery({
22-
orgShortcode,
23-
convoPublicId: convoId
24-
});
22+
} = platform.convos.getConvo.useQuery(
23+
{
24+
orgShortcode,
25+
convoPublicId: convoId
26+
},
27+
{
28+
staleTime: ms('1 minute')
29+
}
30+
);
2531

2632
usePageTitle(convoData?.data.subjects[0]?.subject ?? 'UnInbox');
2733

apps/web/src/app/[orgShortcode]/convo/[convoId]/_components/reply-box.tsx

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import { replyToMessageAtom } from '../atoms';
3131
import { platform } from '@/src/lib/trpc';
3232
import { stringify } from 'superjson';
3333
import { cn } from '@/src/lib/utils';
34+
import { ms } from '@u22n/utils/ms';
3435
import { toast } from 'sonner';
3536

3637
const selectedEmailIdentityAtom = atom<null | TypeId<'emailIdentities'>>(null);
@@ -81,13 +82,23 @@ export function ReplyBox({ convoId, onReply }: ReplyBoxProps) {
8182
const [emailIdentity, setEmailIdentity] = useAtom(selectedEmailIdentityAtom);
8283

8384
const { data: emailIdentities, isLoading: emailIdentitiesLoading } =
84-
platform.org.mail.emailIdentities.getUserEmailIdentities.useQuery({
85-
orgShortcode
86-
});
85+
platform.org.mail.emailIdentities.getUserEmailIdentities.useQuery(
86+
{
87+
orgShortcode
88+
},
89+
{
90+
staleTime: ms('1 hour')
91+
}
92+
);
8793
const { data: isAdmin } =
88-
platform.org.users.members.isOrgMemberAdmin.useQuery({
89-
orgShortcode
90-
});
94+
platform.org.users.members.isOrgMemberAdmin.useQuery(
95+
{
96+
orgShortcode
97+
},
98+
{
99+
staleTime: ms('1 hour')
100+
}
101+
);
91102

92103
useEffect(() => {
93104
setEmailIdentity((prev) => {
@@ -135,6 +146,7 @@ export function ReplyBox({ convoId, onReply }: ReplyBoxProps) {
135146
oldData.entries.unshift(newEntry);
136147
return oldData;
137148
});
149+
138150
onReply();
139151
},
140152
[

apps/web/src/app/[orgShortcode]/convo/_components/create-convo-form.tsx

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ import { useRouter } from 'next/navigation';
6262
import { platform } from '@/src/lib/trpc';
6363
import { stringify } from 'superjson';
6464
import { cn } from '@/src/lib/utils';
65+
import { ms } from '@u22n/utils/ms';
6566
import { toast } from 'sonner';
6667
import { z } from 'zod';
6768

@@ -113,19 +114,29 @@ export default function CreateConvoForm() {
113114
const orgShortcode = useGlobalStore((state) => state.currentOrg.shortcode);
114115

115116
const { data: userEmailIdentities, isLoading: emailIdentitiesLoading } =
116-
platform.org.mail.emailIdentities.getUserEmailIdentities.useQuery({
117-
orgShortcode
118-
});
117+
platform.org.mail.emailIdentities.getUserEmailIdentities.useQuery(
118+
{
119+
orgShortcode
120+
},
121+
{
122+
staleTime: ms('1 hour')
123+
}
124+
);
119125
const { data: orgMemberList, isLoading: orgMemberListLoading } =
120126
platform.org.users.members.getOrgMembersList.useQuery({ orgShortcode });
121127
const { data: orgTeamsData, isLoading: orgTeamsLoading } =
122128
platform.org.users.teams.getOrgTeams.useQuery({ orgShortcode });
123129
const { data: orgContacts, isLoading: orgContactsLoading } =
124130
platform.org.contacts.getOrgContacts.useQuery({ orgShortcode });
125131
const { data: isAdmin } =
126-
platform.org.users.members.isOrgMemberAdmin.useQuery({
127-
orgShortcode
128-
});
132+
platform.org.users.members.isOrgMemberAdmin.useQuery(
133+
{
134+
orgShortcode
135+
},
136+
{
137+
staleTime: ms('1 hour')
138+
}
139+
);
129140

130141
const { mutateAsync: createConvoFn } =
131142
platform.convos.createNewConvo.useMutation();

0 commit comments

Comments
 (0)