From 36fa80c7cd5ed8f1c22eddc2fb0b37791e5fde9d Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Thu, 29 Aug 2024 10:05:21 -0500 Subject: [PATCH 1/4] chore: make templates search error the same as workspaces --- .../pages/TemplatesPage/TemplatesFilter.tsx | 4 +- .../pages/TemplatesPage/TemplatesPageView.tsx | 70 +++++++++---------- 2 files changed, 36 insertions(+), 38 deletions(-) diff --git a/site/src/pages/TemplatesPage/TemplatesFilter.tsx b/site/src/pages/TemplatesPage/TemplatesFilter.tsx index 581858aabe9bf..410d0bb18cf32 100644 --- a/site/src/pages/TemplatesPage/TemplatesFilter.tsx +++ b/site/src/pages/TemplatesPage/TemplatesFilter.tsx @@ -16,9 +16,10 @@ import type { FC } from "react"; interface TemplatesFilterProps { filter: ReturnType; + error?: unknown; } -export const TemplatesFilter: FC = ({ filter }) => { +export const TemplatesFilter: FC = ({ filter, error }) => { const organizationMenu = useFilterMenu({ onChange: (option) => filter.update({ ...filter.values, organization: option?.value }), @@ -48,6 +49,7 @@ export const TemplatesFilter: FC = ({ filter }) => { // learnMoreLink={docs("/templates#template-filtering")} isLoading={false} filter={filter} + error={error} options={ <> = ({ - + + + + + + + {Language.nameLabel} + + {showOrganizations ? "Organization" : Language.usedByLabel} + + {Language.buildTimeLabel} + {Language.lastUpdatedLabel} + + + + + {isLoading && } - {error ? ( - - ) : ( - -
- - - {Language.nameLabel} - - {showOrganizations ? "Organization" : Language.usedByLabel} - - {Language.buildTimeLabel} - {Language.lastUpdatedLabel} - - - - - {isLoading && } - - {isEmpty ? ( - + ) : ( + templates?.map((template) => ( + - ) : ( - templates?.map((template) => ( - - )) - )} - -
-
- )} + )) + )} + + + ); }; From 43bd49e8152abf0a17cc966dfe2cfec527fcc272 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 30 Aug 2024 11:17:38 -0500 Subject: [PATCH 2/4] fmt --- site/src/pages/TemplatesPage/TemplatesFilter.tsx | 5 ++++- site/src/pages/TemplatesPage/TemplatesPageView.tsx | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/site/src/pages/TemplatesPage/TemplatesFilter.tsx b/site/src/pages/TemplatesPage/TemplatesFilter.tsx index 410d0bb18cf32..f463a35ff5261 100644 --- a/site/src/pages/TemplatesPage/TemplatesFilter.tsx +++ b/site/src/pages/TemplatesPage/TemplatesFilter.tsx @@ -19,7 +19,10 @@ interface TemplatesFilterProps { error?: unknown; } -export const TemplatesFilter: FC = ({ filter, error }) => { +export const TemplatesFilter: FC = ({ + filter, + error, +}) => { const organizationMenu = useFilterMenu({ onChange: (option) => filter.update({ ...filter.values, organization: option?.value }), diff --git a/site/src/pages/TemplatesPage/TemplatesPageView.tsx b/site/src/pages/TemplatesPage/TemplatesPageView.tsx index 2241d2cd70b35..5343fd1cf2d94 100644 --- a/site/src/pages/TemplatesPage/TemplatesPageView.tsx +++ b/site/src/pages/TemplatesPage/TemplatesPageView.tsx @@ -229,7 +229,7 @@ export const TemplatesPageView: FC = ({ - + From ec2f4b240d1056222642e2e3f1495e7839b0f431 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 30 Aug 2024 12:11:18 -0500 Subject: [PATCH 3/4] put back alert error for non validation errors --- .../TemplatesPageView.stories.tsx | 19 +++++++++++++++++++ .../pages/TemplatesPage/TemplatesPageView.tsx | 5 +++++ 2 files changed, 24 insertions(+) diff --git a/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx b/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx index 11cd08a2ce8ce..f07ad24df133c 100644 --- a/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx +++ b/site/src/pages/TemplatesPage/TemplatesPageView.stories.tsx @@ -112,3 +112,22 @@ export const WithError: Story = { canCreateTemplates: false, }, }; + +export const WithValidationError: Story = { + args: { + error: mockApiError({ + message: "Something went wrong fetching templates.", + detail: + "This is a more detailed error message that should help you understand what went wrong.", + validations: [ + { + field: "search", + detail: "That search query was invalid, why did you do that?", + }, + ], + }), + templates: undefined, + examples: undefined, + canCreateTemplates: false, + }, +}; diff --git a/site/src/pages/TemplatesPage/TemplatesPageView.tsx b/site/src/pages/TemplatesPage/TemplatesPageView.tsx index 5343fd1cf2d94..418508d6c0f30 100644 --- a/site/src/pages/TemplatesPage/TemplatesPageView.tsx +++ b/site/src/pages/TemplatesPage/TemplatesPageView.tsx @@ -9,6 +9,7 @@ import TableCell from "@mui/material/TableCell"; import TableContainer from "@mui/material/TableContainer"; import TableHead from "@mui/material/TableHead"; import TableRow from "@mui/material/TableRow"; +import { hasError, isApiValidationError } from "api/errors"; import type { Template, TemplateExample } from "api/typesGenerated"; import { ErrorAlert } from "components/Alert/ErrorAlert"; import { ExternalAvatar } from "components/Avatar/Avatar"; @@ -228,6 +229,10 @@ export const TemplatesPageView: FC = ({ + {/* Validation errors are shown on the filter, other errors are an alert box. */} + {hasError(error) && !isApiValidationError(error) && ( + + )} From 24ed1b7e654326d516f1c6f9c3e54c2262c73ac0 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Fri, 30 Aug 2024 12:25:57 -0500 Subject: [PATCH 4/4] error below search --- site/src/pages/TemplatesPage/TemplatesPageView.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/src/pages/TemplatesPage/TemplatesPageView.tsx b/site/src/pages/TemplatesPage/TemplatesPageView.tsx index 418508d6c0f30..591c3971b7e7c 100644 --- a/site/src/pages/TemplatesPage/TemplatesPageView.tsx +++ b/site/src/pages/TemplatesPage/TemplatesPageView.tsx @@ -229,11 +229,11 @@ export const TemplatesPageView: FC = ({ + {/* Validation errors are shown on the filter, other errors are an alert box. */} {hasError(error) && !isApiValidationError(error) && ( )} -
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy