From abe0ce1dde3eaaa72c14446ed93be5211b718814 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Mon, 26 May 2025 13:29:48 +0200 Subject: [PATCH] Add policies listing page Signed-off-by: Bryan Frimin Signed-off-by: Sacha Al Himdani --- .../src/components/form/ControlledField.tsx | 4 +- .../src/components/form/PeopleSelect.tsx | 3 +- .../usePolicyFormFragment.graphql.ts | 76 ++++ .../src/hooks/forms/usePolicyForm.tsx | 12 + apps/console2/src/hooks/graph/PolicyGraph.ts | 46 +++ .../PolicyGraphDeleteMutation.graphql.ts | 132 ++++++ .../PolicyGraphListQuery.graphql.ts | 375 ++++++++++++++++++ .../PolicyGraphNodeQuery.graphql.ts | 277 +++++++++++++ apps/console2/src/index.css | 6 - .../MeasuresPageFragment.graphql.ts | 210 +++++----- .../policies/FormPolicyDialog.tsx | 139 +++++++ .../organizations/policies/PoliciesPage.tsx | 223 +++++++++++ .../organizations/policies/PolicyPage.tsx | 177 +++++++++ .../FormPolicyDialogMutation.graphql.ts | 322 +++++++++++++++ .../PoliciesPageListFragment.graphql.ts | 173 ++++++++ .../PoliciesPageRowFragment.graphql.ts | 204 ++++++++++ .../PolicyPagePolicyFragment.graphql.ts | 220 ++++++++++ .../PolicyPagePolicyQuery.graphql.ts | 249 ++++++++++++ .../PolicyPagePolicyRefetch.graphql.ts | 249 ++++++++++++ .../PolicyPagePublishMutation.graphql.ts | 105 +++++ apps/console2/src/routes.tsx | 2 + apps/console2/src/routes/policiesRoutes.ts | 24 ++ packages/i18n/TranslatorProvider.tsx | 7 +- packages/ui/package.json | 8 +- packages/ui/src/Atoms/Button/Button.tsx | 2 +- packages/ui/src/Atoms/Input/Input.stories.tsx | 7 + packages/ui/src/Atoms/Input/Input.tsx | 26 +- .../src/Atoms/Markdown/Markdown.stories.tsx | 75 ++++ packages/ui/src/Atoms/Markdown/Markdown.tsx | 20 + packages/ui/src/Atoms/Select/Select.tsx | 16 +- .../src/Atoms/Textarea/Textarea.stories.tsx | 5 + packages/ui/src/Atoms/Textarea/Textarea.tsx | 42 +- packages/ui/src/Layouts/Layout.tsx | 12 +- packages/ui/src/Molecules/Dialog/Dialog.tsx | 4 +- packages/ui/src/index.ts | 1 + packages/ui/src/theme.css | 28 +- 36 files changed, 3343 insertions(+), 138 deletions(-) create mode 100644 apps/console2/src/hooks/forms/__generated__/usePolicyFormFragment.graphql.ts create mode 100644 apps/console2/src/hooks/forms/usePolicyForm.tsx create mode 100644 apps/console2/src/hooks/graph/PolicyGraph.ts create mode 100644 apps/console2/src/hooks/graph/__generated__/PolicyGraphDeleteMutation.graphql.ts create mode 100644 apps/console2/src/hooks/graph/__generated__/PolicyGraphListQuery.graphql.ts create mode 100644 apps/console2/src/hooks/graph/__generated__/PolicyGraphNodeQuery.graphql.ts create mode 100644 apps/console2/src/pages/organizations/policies/FormPolicyDialog.tsx create mode 100644 apps/console2/src/pages/organizations/policies/PoliciesPage.tsx create mode 100644 apps/console2/src/pages/organizations/policies/PolicyPage.tsx create mode 100644 apps/console2/src/pages/organizations/policies/__generated__/FormPolicyDialogMutation.graphql.ts create mode 100644 apps/console2/src/pages/organizations/policies/__generated__/PoliciesPageListFragment.graphql.ts create mode 100644 apps/console2/src/pages/organizations/policies/__generated__/PoliciesPageRowFragment.graphql.ts create mode 100644 apps/console2/src/pages/organizations/policies/__generated__/PolicyPagePolicyFragment.graphql.ts create mode 100644 apps/console2/src/pages/organizations/policies/__generated__/PolicyPagePolicyQuery.graphql.ts create mode 100644 apps/console2/src/pages/organizations/policies/__generated__/PolicyPagePolicyRefetch.graphql.ts create mode 100644 apps/console2/src/pages/organizations/policies/__generated__/PolicyPagePublishMutation.graphql.ts create mode 100644 apps/console2/src/routes/policiesRoutes.ts create mode 100644 packages/ui/src/Atoms/Markdown/Markdown.stories.tsx create mode 100644 packages/ui/src/Atoms/Markdown/Markdown.tsx diff --git a/apps/console2/src/components/form/ControlledField.tsx b/apps/console2/src/components/form/ControlledField.tsx index dddb296a2..353c72ceb 100644 --- a/apps/console2/src/components/form/ControlledField.tsx +++ b/apps/console2/src/components/form/ControlledField.tsx @@ -20,11 +20,12 @@ export function ControlledField({ name={name} render={({ field }) => ( <> + {/* @ts-expect-error field is too dynamic */} @@ -48,6 +49,7 @@ export function ControlledSelect({ {...props} {...field} onValueChange={field.onChange} + value={field.value ?? ""} /> )} /> diff --git a/apps/console2/src/components/form/PeopleSelect.tsx b/apps/console2/src/components/form/PeopleSelect.tsx index 4c0e6eb8b..3702c10fc 100644 --- a/apps/console2/src/components/form/PeopleSelect.tsx +++ b/apps/console2/src/components/form/PeopleSelect.tsx @@ -72,8 +72,9 @@ function PeopleSelectWithQuery({ variant="editor" placeholder={__("Select an owner")} onValueChange={field.onChange} - key={people?.length ?? 0} + key={people?.length.toString() ?? "0"} {...field} + value={field.value ?? ""} > {people?.map((p) => (