Skip to content

Commit d4882b0

Browse files
committed
Review feedback
1 parent 8ef1277 commit d4882b0

File tree

6 files changed

+74
-95
lines changed

6 files changed

+74
-95
lines changed

frontend/src/gql/gql.ts

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,11 @@ type Documents = {
5050
"\n fragment UserEmailList_siteConfig on SiteConfig {\n emailChangeAllowed\n passwordLoginEnabled\n }\n": typeof types.UserEmailList_SiteConfigFragmentDoc,
5151
"\n fragment BrowserSessionsOverview_user on User {\n id\n\n browserSessions(first: 0, state: ACTIVE) {\n totalCount\n }\n }\n": typeof types.BrowserSessionsOverview_UserFragmentDoc,
5252
"\n query UserProfile {\n viewerSession {\n __typename\n ... on BrowserSession {\n id\n user {\n ...AddEmailForm_user\n ...UserEmailList_user\n ...AccountDeleteButton_user\n hasPassword\n emails(first: 0) {\n totalCount\n }\n }\n }\n }\n\n siteConfig {\n emailChangeAllowed\n passwordLoginEnabled\n accountDeactivationAllowed\n ...AddEmailForm_siteConfig\n ...UserEmailList_siteConfig\n ...PasswordChange_siteConfig\n ...AccountDeleteButton_siteConfig\n }\n }\n": typeof types.UserProfileDocument,
53-
"\n fragment PlanManagement_siteConfig on SiteConfig {\n planManagementIframeUri\n }\n": typeof types.PlanManagement_SiteConfigFragmentDoc,
54-
"\n query SiteConfig {\n siteConfig {\n ...PlanManagement_siteConfig\n }\n }\n": typeof types.SiteConfigDocument,
53+
"\n query PlanManagementTab {\n siteConfig {\n planManagementIframeUri\n }\n }\n": typeof types.PlanManagementTabDocument,
5554
"\n query BrowserSessionList(\n $first: Int\n $after: String\n $last: Int\n $before: String\n $lastActive: DateFilter\n ) {\n viewerSession {\n __typename\n ... on BrowserSession {\n id\n\n user {\n id\n\n browserSessions(\n first: $first\n after: $after\n last: $last\n before: $before\n lastActive: $lastActive\n state: ACTIVE\n ) {\n totalCount\n\n edges {\n cursor\n node {\n id\n ...BrowserSession_session\n }\n }\n\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n }\n }\n }\n": typeof types.BrowserSessionListDocument,
5655
"\n query SessionsOverview {\n viewer {\n __typename\n\n ... on User {\n id\n ...BrowserSessionsOverview_user\n }\n }\n }\n": typeof types.SessionsOverviewDocument,
5756
"\n query AppSessionsList(\n $before: String\n $after: String\n $first: Int\n $last: Int\n $lastActive: DateFilter\n ) {\n viewer {\n __typename\n\n ... on User {\n id\n appSessions(\n before: $before\n after: $after\n first: $first\n last: $last\n lastActive: $lastActive\n state: ACTIVE\n ) {\n edges {\n cursor\n node {\n __typename\n ...CompatSession_session\n ...OAuth2Session_session\n }\n }\n\n totalCount\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n }\n }\n }\n }\n": typeof types.AppSessionsListDocument,
58-
"\n query CurrentUserGreeting {\n viewer {\n __typename\n ... on User {\n ...UserGreeting_user\n }\n }\n\n siteConfig {\n ...UserGreeting_siteConfig\n ...PlanManagement_siteConfig\n }\n }\n": typeof types.CurrentUserGreetingDocument,
57+
"\n query CurrentUserGreeting {\n viewer {\n __typename\n ... on User {\n ...UserGreeting_user\n }\n }\n\n siteConfig {\n ...UserGreeting_siteConfig\n planManagementIframeUri\n }\n }\n": typeof types.CurrentUserGreetingDocument,
5958
"\n query OAuth2Client($id: ID!) {\n oauth2Client(id: $id) {\n ...OAuth2Client_detail\n }\n }\n": typeof types.OAuth2ClientDocument,
6059
"\n query CurrentViewer {\n viewer {\n __typename\n ... on Node {\n id\n }\n }\n }\n": typeof types.CurrentViewerDocument,
6160
"\n query DeviceRedirect($deviceId: String!, $userId: ID!) {\n session(deviceId: $deviceId, userId: $userId) {\n __typename\n ... on Node {\n id\n }\n }\n }\n": typeof types.DeviceRedirectDocument,
@@ -108,12 +107,11 @@ const documents: Documents = {
108107
"\n fragment UserEmailList_siteConfig on SiteConfig {\n emailChangeAllowed\n passwordLoginEnabled\n }\n": types.UserEmailList_SiteConfigFragmentDoc,
109108
"\n fragment BrowserSessionsOverview_user on User {\n id\n\n browserSessions(first: 0, state: ACTIVE) {\n totalCount\n }\n }\n": types.BrowserSessionsOverview_UserFragmentDoc,
110109
"\n query UserProfile {\n viewerSession {\n __typename\n ... on BrowserSession {\n id\n user {\n ...AddEmailForm_user\n ...UserEmailList_user\n ...AccountDeleteButton_user\n hasPassword\n emails(first: 0) {\n totalCount\n }\n }\n }\n }\n\n siteConfig {\n emailChangeAllowed\n passwordLoginEnabled\n accountDeactivationAllowed\n ...AddEmailForm_siteConfig\n ...UserEmailList_siteConfig\n ...PasswordChange_siteConfig\n ...AccountDeleteButton_siteConfig\n }\n }\n": types.UserProfileDocument,
111-
"\n fragment PlanManagement_siteConfig on SiteConfig {\n planManagementIframeUri\n }\n": types.PlanManagement_SiteConfigFragmentDoc,
112-
"\n query SiteConfig {\n siteConfig {\n ...PlanManagement_siteConfig\n }\n }\n": types.SiteConfigDocument,
110+
"\n query PlanManagementTab {\n siteConfig {\n planManagementIframeUri\n }\n }\n": types.PlanManagementTabDocument,
113111
"\n query BrowserSessionList(\n $first: Int\n $after: String\n $last: Int\n $before: String\n $lastActive: DateFilter\n ) {\n viewerSession {\n __typename\n ... on BrowserSession {\n id\n\n user {\n id\n\n browserSessions(\n first: $first\n after: $after\n last: $last\n before: $before\n lastActive: $lastActive\n state: ACTIVE\n ) {\n totalCount\n\n edges {\n cursor\n node {\n id\n ...BrowserSession_session\n }\n }\n\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n }\n }\n }\n }\n": types.BrowserSessionListDocument,
114112
"\n query SessionsOverview {\n viewer {\n __typename\n\n ... on User {\n id\n ...BrowserSessionsOverview_user\n }\n }\n }\n": types.SessionsOverviewDocument,
115113
"\n query AppSessionsList(\n $before: String\n $after: String\n $first: Int\n $last: Int\n $lastActive: DateFilter\n ) {\n viewer {\n __typename\n\n ... on User {\n id\n appSessions(\n before: $before\n after: $after\n first: $first\n last: $last\n lastActive: $lastActive\n state: ACTIVE\n ) {\n edges {\n cursor\n node {\n __typename\n ...CompatSession_session\n ...OAuth2Session_session\n }\n }\n\n totalCount\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n }\n }\n }\n }\n": types.AppSessionsListDocument,
116-
"\n query CurrentUserGreeting {\n viewer {\n __typename\n ... on User {\n ...UserGreeting_user\n }\n }\n\n siteConfig {\n ...UserGreeting_siteConfig\n ...PlanManagement_siteConfig\n }\n }\n": types.CurrentUserGreetingDocument,
114+
"\n query CurrentUserGreeting {\n viewer {\n __typename\n ... on User {\n ...UserGreeting_user\n }\n }\n\n siteConfig {\n ...UserGreeting_siteConfig\n planManagementIframeUri\n }\n }\n": types.CurrentUserGreetingDocument,
117115
"\n query OAuth2Client($id: ID!) {\n oauth2Client(id: $id) {\n ...OAuth2Client_detail\n }\n }\n": types.OAuth2ClientDocument,
118116
"\n query CurrentViewer {\n viewer {\n __typename\n ... on Node {\n id\n }\n }\n }\n": types.CurrentViewerDocument,
119117
"\n query DeviceRedirect($deviceId: String!, $userId: ID!) {\n session(deviceId: $deviceId, userId: $userId) {\n __typename\n ... on Node {\n id\n }\n }\n }\n": types.DeviceRedirectDocument,
@@ -274,11 +272,7 @@ export function graphql(source: "\n query UserProfile {\n viewerSession {\n
274272
/**
275273
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
276274
*/
277-
export function graphql(source: "\n fragment PlanManagement_siteConfig on SiteConfig {\n planManagementIframeUri\n }\n"): typeof import('./graphql').PlanManagement_SiteConfigFragmentDoc;
278-
/**
279-
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
280-
*/
281-
export function graphql(source: "\n query SiteConfig {\n siteConfig {\n ...PlanManagement_siteConfig\n }\n }\n"): typeof import('./graphql').SiteConfigDocument;
275+
export function graphql(source: "\n query PlanManagementTab {\n siteConfig {\n planManagementIframeUri\n }\n }\n"): typeof import('./graphql').PlanManagementTabDocument;
282276
/**
283277
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
284278
*/
@@ -294,7 +288,7 @@ export function graphql(source: "\n query AppSessionsList(\n $before: String
294288
/**
295289
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
296290
*/
297-
export function graphql(source: "\n query CurrentUserGreeting {\n viewer {\n __typename\n ... on User {\n ...UserGreeting_user\n }\n }\n\n siteConfig {\n ...UserGreeting_siteConfig\n ...PlanManagement_siteConfig\n }\n }\n"): typeof import('./graphql').CurrentUserGreetingDocument;
291+
export function graphql(source: "\n query CurrentUserGreeting {\n viewer {\n __typename\n ... on User {\n ...UserGreeting_user\n }\n }\n\n siteConfig {\n ...UserGreeting_siteConfig\n planManagementIframeUri\n }\n }\n"): typeof import('./graphql').CurrentUserGreetingDocument;
298292
/**
299293
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
300294
*/

frontend/src/gql/graphql.ts

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1859,15 +1859,10 @@ export type UserProfileQuery = { __typename?: 'Query', viewerSession: { __typena
18591859
& { ' $fragmentRefs'?: { 'AddEmailForm_SiteConfigFragment': AddEmailForm_SiteConfigFragment;'UserEmailList_SiteConfigFragment': UserEmailList_SiteConfigFragment;'PasswordChange_SiteConfigFragment': PasswordChange_SiteConfigFragment;'AccountDeleteButton_SiteConfigFragment': AccountDeleteButton_SiteConfigFragment } }
18601860
) };
18611861

1862-
export type PlanManagement_SiteConfigFragment = { __typename?: 'SiteConfig', planManagementIframeUri?: string | null } & { ' $fragmentName'?: 'PlanManagement_SiteConfigFragment' };
1862+
export type PlanManagementTabQueryVariables = Exact<{ [key: string]: never; }>;
18631863

1864-
export type SiteConfigQueryVariables = Exact<{ [key: string]: never; }>;
18651864

1866-
1867-
export type SiteConfigQuery = { __typename?: 'Query', siteConfig: (
1868-
{ __typename?: 'SiteConfig' }
1869-
& { ' $fragmentRefs'?: { 'PlanManagement_SiteConfigFragment': PlanManagement_SiteConfigFragment } }
1870-
) };
1865+
export type PlanManagementTabQuery = { __typename?: 'Query', siteConfig: { __typename?: 'SiteConfig', planManagementIframeUri?: string | null } };
18711866

18721867
export type BrowserSessionListQueryVariables = Exact<{
18731868
first?: InputMaybe<Scalars['Int']['input']>;
@@ -1915,8 +1910,8 @@ export type CurrentUserGreetingQuery = { __typename?: 'Query', viewer: { __typen
19151910
{ __typename: 'User' }
19161911
& { ' $fragmentRefs'?: { 'UserGreeting_UserFragment': UserGreeting_UserFragment } }
19171912
), siteConfig: (
1918-
{ __typename?: 'SiteConfig' }
1919-
& { ' $fragmentRefs'?: { 'UserGreeting_SiteConfigFragment': UserGreeting_SiteConfigFragment;'PlanManagement_SiteConfigFragment': PlanManagement_SiteConfigFragment } }
1913+
{ __typename?: 'SiteConfig', planManagementIframeUri?: string | null }
1914+
& { ' $fragmentRefs'?: { 'UserGreeting_SiteConfigFragment': UserGreeting_SiteConfigFragment } }
19201915
) };
19211916

19221917
export type OAuth2ClientQueryVariables = Exact<{
@@ -2388,11 +2383,6 @@ export const BrowserSessionsOverview_UserFragmentDoc = new TypedDocumentString(`
23882383
}
23892384
}
23902385
`, {"fragmentName":"BrowserSessionsOverview_user"}) as unknown as TypedDocumentString<BrowserSessionsOverview_UserFragment, unknown>;
2391-
export const PlanManagement_SiteConfigFragmentDoc = new TypedDocumentString(`
2392-
fragment PlanManagement_siteConfig on SiteConfig {
2393-
planManagementIframeUri
2394-
}
2395-
`, {"fragmentName":"PlanManagement_siteConfig"}) as unknown as TypedDocumentString<PlanManagement_SiteConfigFragment, unknown>;
23962386
export const RecoverPassword_UserRecoveryTicketFragmentDoc = new TypedDocumentString(`
23972387
fragment RecoverPassword_userRecoveryTicket on UserRecoveryTicket {
23982388
username
@@ -2592,15 +2582,13 @@ fragment UserEmailList_siteConfig on SiteConfig {
25922582
emailChangeAllowed
25932583
passwordLoginEnabled
25942584
}`) as unknown as TypedDocumentString<UserProfileQuery, UserProfileQueryVariables>;
2595-
export const SiteConfigDocument = new TypedDocumentString(`
2596-
query SiteConfig {
2585+
export const PlanManagementTabDocument = new TypedDocumentString(`
2586+
query PlanManagementTab {
25972587
siteConfig {
2598-
...PlanManagement_siteConfig
2588+
planManagementIframeUri
25992589
}
26002590
}
2601-
fragment PlanManagement_siteConfig on SiteConfig {
2602-
planManagementIframeUri
2603-
}`) as unknown as TypedDocumentString<SiteConfigQuery, SiteConfigQueryVariables>;
2591+
`) as unknown as TypedDocumentString<PlanManagementTabQuery, PlanManagementTabQueryVariables>;
26042592
export const BrowserSessionListDocument = new TypedDocumentString(`
26052593
query BrowserSessionList($first: Int, $after: String, $last: Int, $before: String, $lastActive: DateFilter) {
26062594
viewerSession {
@@ -2788,7 +2776,7 @@ export const CurrentUserGreetingDocument = new TypedDocumentString(`
27882776
}
27892777
siteConfig {
27902778
...UserGreeting_siteConfig
2791-
...PlanManagement_siteConfig
2779+
planManagementIframeUri
27922780
}
27932781
}
27942782
fragment UserGreeting_user on User {
@@ -2800,9 +2788,6 @@ export const CurrentUserGreetingDocument = new TypedDocumentString(`
28002788
}
28012789
fragment UserGreeting_siteConfig on SiteConfig {
28022790
displayNameChangeAllowed
2803-
}
2804-
fragment PlanManagement_siteConfig on SiteConfig {
2805-
planManagementIframeUri
28062791
}`) as unknown as TypedDocumentString<CurrentUserGreetingQuery, CurrentUserGreetingQueryVariables>;
28072792
export const OAuth2ClientDocument = new TypedDocumentString(`
28082793
query OAuth2Client($id: ID!) {
@@ -3315,7 +3300,7 @@ export const mockUserProfileQuery = (resolver: GraphQLResponseResolver<UserProfi
33153300
* @param options Options object to customize the behavior of the mock. ([see more](https://mswjs.io/docs/api/graphql#handler-options))
33163301
* @see https://mswjs.io/docs/basics/response-resolver
33173302
* @example
3318-
* mockSiteConfigQuery(
3303+
* mockPlanManagementTabQuery(
33193304
* ({ query, variables }) => {
33203305
* return HttpResponse.json({
33213306
* data: { siteConfig }
@@ -3324,9 +3309,9 @@ export const mockUserProfileQuery = (resolver: GraphQLResponseResolver<UserProfi
33243309
* requestOptions
33253310
* )
33263311
*/
3327-
export const mockSiteConfigQuery = (resolver: GraphQLResponseResolver<SiteConfigQuery, SiteConfigQueryVariables>, options?: RequestHandlerOptions) =>
3328-
graphql.query<SiteConfigQuery, SiteConfigQueryVariables>(
3329-
'SiteConfig',
3312+
export const mockPlanManagementTabQuery = (resolver: GraphQLResponseResolver<PlanManagementTabQuery, PlanManagementTabQueryVariables>, options?: RequestHandlerOptions) =>
3313+
graphql.query<PlanManagementTabQuery, PlanManagementTabQueryVariables>(
3314+
'PlanManagementTab',
33303315
resolver,
33313316
options
33323317
)

frontend/src/routes/_account.index.tsx

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,8 @@ import AddEmailForm from "../components/UserProfile/AddEmailForm";
2727
import UserEmailList, {
2828
query as userEmailListQuery,
2929
} from "../components/UserProfile/UserEmailList";
30-
import {
31-
CONFIG_FRAGMENT as PLAN_MANAGEMENT_CONFIG_FRAGMENT,
32-
query as planManagementQuery,
33-
} from "./_account.plan.index";
3430

35-
import { graphql, useFragment } from "../gql";
31+
import { graphql } from "../gql";
3632
import { graphqlRequest } from "../graphql";
3733

3834
const QUERY = graphql(/* GraphQL */ `
@@ -101,7 +97,7 @@ const actionSchema = v.variant("action", [
10197
export const Route = createFileRoute("/_account/")({
10298
validateSearch: actionSchema,
10399

104-
async beforeLoad({ search, context }) {
100+
beforeLoad({ search }) {
105101
switch (search.action) {
106102
case "profile":
107103
case "org.matrix.profile":
@@ -135,15 +131,9 @@ export const Route = createFileRoute("/_account/")({
135131
search: { deepLink: true },
136132
});
137133
case "org.matrix.plan_management": {
138-
const { siteConfig } =
139-
await context.queryClient.ensureQueryData(planManagementQuery);
140-
const { planManagementIframeUri } = useFragment(
141-
PLAN_MANAGEMENT_CONFIG_FRAGMENT,
142-
siteConfig,
143-
);
144-
throw redirect({
145-
to: planManagementIframeUri ? "/plan" : "/",
146-
});
134+
// We don't both checking if the plan management iframe is actually available and
135+
// instead rely on the plan tab handling it.
136+
throw redirect({ to: "/plan" });
147137
}
148138
}
149139
},

0 commit comments

Comments
 (0)