From aa53264df007d74af8ba7f060d1b82d1d8103b39 Mon Sep 17 00:00:00 2001 From: gearnode Date: Sun, 9 Feb 2025 19:00:47 -0800 Subject: [PATCH] Add peoples page Signed-off-by: gearnode --- apps/console/src/App.tsx | 2 + apps/console/src/pages/PeoplesPage.tsx | 63 ++++++ .../__generated__/PeoplesPageQuery.graphql.ts | 191 ++++++++++++++++++ .../__generated__/VendorsPageQuery.graphql.ts | 175 ++++++++++++++++ 4 files changed, 431 insertions(+) create mode 100644 apps/console/src/pages/PeoplesPage.tsx create mode 100644 apps/console/src/pages/__generated__/PeoplesPageQuery.graphql.ts create mode 100644 apps/console/src/pages/__generated__/VendorsPageQuery.graphql.ts diff --git a/apps/console/src/App.tsx b/apps/console/src/App.tsx index 9eefb3da3..02650e7c3 100644 --- a/apps/console/src/App.tsx +++ b/apps/console/src/App.tsx @@ -22,6 +22,7 @@ posthog.init(process.env.POSTHOG_KEY!, { const HomePage = lazy(() => import("./pages/HomePage")); const NotFoundPage = lazy(() => import("./pages/NotFoundPage")); +const PeoplesPage = lazy(() => import("./pages/PeoplesPage")); function App() { return ( @@ -35,6 +36,7 @@ function App() { }> } /> + } /> } /> diff --git a/apps/console/src/pages/PeoplesPage.tsx b/apps/console/src/pages/PeoplesPage.tsx new file mode 100644 index 000000000..5106e66c7 --- /dev/null +++ b/apps/console/src/pages/PeoplesPage.tsx @@ -0,0 +1,63 @@ +import { Suspense, useEffect } from "react"; +import { + graphql, + PreloadedQuery, + usePreloadedQuery, + useQueryLoader, +} from "react-relay"; +import type { PeoplesPageQuery as PeoplesPageQueryType } from "./__generated__/PeoplesPageQuery.graphql"; + +const PeoplesPageQuery = graphql` + query PeoplesPageQuery { + node(id: "AZSfP_xAcAC5IAAAAAAltA") { + id + ... on Organization { + peoples { + edges { + node { + id + fullName + primaryEmailAddress + additionalEmailAddresses + createdAt + updatedAt + } + } + } + } + } + } +`; + +function PeoplesPageContent({ + queryRef, +}: { + queryRef: PreloadedQuery; +}) { + const data = usePreloadedQuery(PeoplesPageQuery, queryRef); + return ( +
{JSON.stringify(data, null, 2)}
+ ); +} + +function PeoplesPageFallback() { + return
Loading...
; +} + +export default function PeoplesPage() { + const [queryRef, loadQuery] = useQueryLoader(PeoplesPageQuery); + + useEffect(() => { + loadQuery({}); + }, [loadQuery]); + + if (!queryRef) { + return ; + } + + return ( + }> + + + ); +} \ No newline at end of file diff --git a/apps/console/src/pages/__generated__/PeoplesPageQuery.graphql.ts b/apps/console/src/pages/__generated__/PeoplesPageQuery.graphql.ts new file mode 100644 index 000000000..9c82e3f56 --- /dev/null +++ b/apps/console/src/pages/__generated__/PeoplesPageQuery.graphql.ts @@ -0,0 +1,191 @@ +/** + * @generated SignedSource<> + * @lightSyntaxTransform + * @nogrep + */ + +/* tslint:disable */ +/* eslint-disable */ +// @ts-nocheck + +import { ConcreteRequest } from 'relay-runtime'; +export type PeoplesPageQuery$variables = Record; +export type PeoplesPageQuery$data = { + readonly node: { + readonly id: string; + readonly peoples?: { + readonly edges: ReadonlyArray<{ + readonly node: { + readonly additionalEmailAddresses: ReadonlyArray; + readonly createdAt: any; + readonly fullName: string; + readonly id: string; + readonly primaryEmailAddress: string; + readonly updatedAt: any; + }; + }>; + }; + }; +}; +export type PeoplesPageQuery = { + response: PeoplesPageQuery$data; + variables: PeoplesPageQuery$variables; +}; + +const node: ConcreteRequest = (function(){ +var v0 = [ + { + "kind": "Literal", + "name": "id", + "value": "AZSfP_xAcAC5IAAAAAAltA" + } +], +v1 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null +}, +v2 = { + "kind": "InlineFragment", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "PeopleConnection", + "kind": "LinkedField", + "name": "peoples", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "PeopleEdge", + "kind": "LinkedField", + "name": "edges", + "plural": true, + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "People", + "kind": "LinkedField", + "name": "node", + "plural": false, + "selections": [ + (v1/*: any*/), + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "fullName", + "storageKey": null + }, + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "primaryEmailAddress", + "storageKey": null + }, + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "additionalEmailAddresses", + "storageKey": null + }, + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "createdAt", + "storageKey": null + }, + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "updatedAt", + "storageKey": null + } + ], + "storageKey": null + } + ], + "storageKey": null + } + ], + "storageKey": null + } + ], + "type": "Organization", + "abstractKey": null +}; +return { + "fragment": { + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "PeoplesPageQuery", + "selections": [ + { + "alias": null, + "args": (v0/*: any*/), + "concreteType": null, + "kind": "LinkedField", + "name": "node", + "plural": false, + "selections": [ + (v1/*: any*/), + (v2/*: any*/) + ], + "storageKey": "node(id:\"AZSfP_xAcAC5IAAAAAAltA\")" + } + ], + "type": "Query", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": [], + "kind": "Operation", + "name": "PeoplesPageQuery", + "selections": [ + { + "alias": null, + "args": (v0/*: any*/), + "concreteType": null, + "kind": "LinkedField", + "name": "node", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "__typename", + "storageKey": null + }, + (v1/*: any*/), + (v2/*: any*/) + ], + "storageKey": "node(id:\"AZSfP_xAcAC5IAAAAAAltA\")" + } + ] + }, + "params": { + "cacheID": "98a9fdbb092f803bd997c417aed8b9a4", + "id": null, + "metadata": {}, + "name": "PeoplesPageQuery", + "operationKind": "query", + "text": "query PeoplesPageQuery {\n node(id: \"AZSfP_xAcAC5IAAAAAAltA\") {\n __typename\n id\n ... on Organization {\n peoples {\n edges {\n node {\n id\n fullName\n primaryEmailAddress\n additionalEmailAddresses\n createdAt\n updatedAt\n }\n }\n }\n }\n }\n}\n" + } +}; +})(); + +(node as any).hash = "72495143e41518eb0c6bc2e1af81bded"; + +export default node; diff --git a/apps/console/src/pages/__generated__/VendorsPageQuery.graphql.ts b/apps/console/src/pages/__generated__/VendorsPageQuery.graphql.ts new file mode 100644 index 000000000..dd484cd38 --- /dev/null +++ b/apps/console/src/pages/__generated__/VendorsPageQuery.graphql.ts @@ -0,0 +1,175 @@ +/** + * @generated SignedSource<<76613a71949a43eb69fb9dfd0a4c1694>> + * @lightSyntaxTransform + * @nogrep + */ + +/* tslint:disable */ +/* eslint-disable */ +// @ts-nocheck + +import { ConcreteRequest } from 'relay-runtime'; +export type VendorsPageQuery$variables = Record; +export type VendorsPageQuery$data = { + readonly node: { + readonly id: string; + readonly vendors?: { + readonly edges: ReadonlyArray<{ + readonly node: { + readonly createdAt: any; + readonly id: string; + readonly name: string; + readonly updatedAt: any; + }; + }>; + }; + }; +}; +export type VendorsPageQuery = { + response: VendorsPageQuery$data; + variables: VendorsPageQuery$variables; +}; + +const node: ConcreteRequest = (function(){ +var v0 = [ + { + "kind": "Literal", + "name": "id", + "value": "AZSfP_xAcAC5IAAAAAAltA" + } +], +v1 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "id", + "storageKey": null +}, +v2 = { + "kind": "InlineFragment", + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "VendorConnection", + "kind": "LinkedField", + "name": "vendors", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "VendorEdge", + "kind": "LinkedField", + "name": "edges", + "plural": true, + "selections": [ + { + "alias": null, + "args": null, + "concreteType": "Vendor", + "kind": "LinkedField", + "name": "node", + "plural": false, + "selections": [ + (v1/*: any*/), + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "name", + "storageKey": null + }, + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "createdAt", + "storageKey": null + }, + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "updatedAt", + "storageKey": null + } + ], + "storageKey": null + } + ], + "storageKey": null + } + ], + "storageKey": null + } + ], + "type": "Organization", + "abstractKey": null +}; +return { + "fragment": { + "argumentDefinitions": [], + "kind": "Fragment", + "metadata": null, + "name": "VendorsPageQuery", + "selections": [ + { + "alias": null, + "args": (v0/*: any*/), + "concreteType": null, + "kind": "LinkedField", + "name": "node", + "plural": false, + "selections": [ + (v1/*: any*/), + (v2/*: any*/) + ], + "storageKey": "node(id:\"AZSfP_xAcAC5IAAAAAAltA\")" + } + ], + "type": "Query", + "abstractKey": null + }, + "kind": "Request", + "operation": { + "argumentDefinitions": [], + "kind": "Operation", + "name": "VendorsPageQuery", + "selections": [ + { + "alias": null, + "args": (v0/*: any*/), + "concreteType": null, + "kind": "LinkedField", + "name": "node", + "plural": false, + "selections": [ + { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "__typename", + "storageKey": null + }, + (v1/*: any*/), + (v2/*: any*/) + ], + "storageKey": "node(id:\"AZSfP_xAcAC5IAAAAAAltA\")" + } + ] + }, + "params": { + "cacheID": "6e90edfb4e2117a046157785647169c7", + "id": null, + "metadata": {}, + "name": "VendorsPageQuery", + "operationKind": "query", + "text": "query VendorsPageQuery {\n node(id: \"AZSfP_xAcAC5IAAAAAAltA\") {\n __typename\n id\n ... on Organization {\n vendors {\n edges {\n node {\n id\n name\n createdAt\n updatedAt\n }\n }\n }\n }\n }\n}\n" + } +}; +})(); + +(node as any).hash = "22ce46326b87e66442cdb832085dfe60"; + +export default node;