From 0e701ec6e9a02de44351fcc71d2a26ec4488222c Mon Sep 17 00:00:00 2001 From: Bryan Frimin Date: Fri, 17 Apr 2026 18:03:26 +0200 Subject: [PATCH] Style Signed-off-by: Bryan Frimin --- .../src/pages/iam/auth/ConsentPage.tsx | 114 ++++-------------- .../src/pages/iam/auth/ConsentPageLoader.tsx | 10 +- e2e/internal/testutil/testutil.go | 28 ++++- packages/ui/src/Atoms/Icons/index.tsx | 7 ++ .../api/connect/v1/graphql/oauth2.graphql | 6 +- 5 files changed, 61 insertions(+), 104 deletions(-) diff --git a/apps/console/src/pages/iam/auth/ConsentPage.tsx b/apps/console/src/pages/iam/auth/ConsentPage.tsx index efe719543..94a193c3c 100644 --- a/apps/console/src/pages/iam/auth/ConsentPage.tsx +++ b/apps/console/src/pages/iam/auth/ConsentPage.tsx @@ -12,14 +12,23 @@ // OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR // PERFORMANCE OF THIS SOFTWARE. -import { formatError } from "@probo/helpers"; -import { usePageTitle } from "@probo/hooks"; -import { useTranslate } from "@probo/i18n"; -import { Button, useToast } from "@probo/ui"; import { useCallback, useState } from "react"; import { type PreloadedQuery, useMutation, usePreloadedQuery } from "react-relay"; import { graphql } from "relay-runtime"; +import { formatError } from "@probo/helpers"; +import { usePageTitle } from "@probo/hooks"; +import { useTranslate } from "@probo/i18n"; +import { + Button, + IconArrowsClockwise, + IconEnvelope, + IconLockOpen, + IconUser, + IconUserCircle, + useToast, +} from "@probo/ui"; + import type { ConsentPageMutation } from "#/__generated__/iam/ConsentPageMutation.graphql"; import type { ConsentPageQuery } from "#/__generated__/iam/ConsentPageQuery.graphql"; @@ -53,80 +62,12 @@ const scopeLabels: Record = { offline_access: "Stay signed in and access your data while you're away", }; -function ScopeIcon({ scope }: { scope: string }) { - switch (scope) { - case "openid": - return ( - - - - ); - case "email": - return ( - - - - ); - case "profile": - return ( - - - - ); - case "offline_access": - return ( - - - - ); - default: - return null; - } -} +const scopeIcons: Record = { + openid: , + email: , + profile: , + offline_access: , +}; export default function ConsentPage(props: { queryRef: PreloadedQuery; @@ -236,20 +177,7 @@ export default function ConsentPage(props: {
- - - +

@@ -273,7 +201,7 @@ export default function ConsentPage(props: { key={scope} className="flex items-center gap-2.5 px-3 py-2.5 text-sm text-txt-secondary border border-border-mid rounded-lg" > - + {scopeIcons[scope]} {__(label)} ); diff --git a/apps/console/src/pages/iam/auth/ConsentPageLoader.tsx b/apps/console/src/pages/iam/auth/ConsentPageLoader.tsx index ecea77893..8d57f6f59 100644 --- a/apps/console/src/pages/iam/auth/ConsentPageLoader.tsx +++ b/apps/console/src/pages/iam/auth/ConsentPageLoader.tsx @@ -22,11 +22,10 @@ import type { ConsentPageQuery } from "#/__generated__/iam/ConsentPageQuery.grap import ConsentPage, { consentPageQuery } from "./ConsentPage"; function ConsentPageQueryLoader() { - const [searchParams] = useSearchParams(); - const consentId = searchParams.get("consent_id") ?? ""; - const [queryRef, loadQuery] = useQueryLoader(consentPageQuery); + const [searchParams] = useSearchParams(); + const consentId = searchParams.get("consent_id") ?? ""; useEffect(() => { loadQuery({ consentId }); @@ -69,8 +68,11 @@ function ConsentErrorFallback() { } export default function ConsentPageLoader() { + const [searchParams] = useSearchParams(); + const consentId = searchParams.get("consent_id") ?? ""; + return ( - }> + }> ); diff --git a/e2e/internal/testutil/testutil.go b/e2e/internal/testutil/testutil.go index 2e4cb7336..bafa7f6db 100644 --- a/e2e/internal/testutil/testutil.go +++ b/e2e/internal/testutil/testutil.go @@ -44,6 +44,25 @@ type TestEnv struct { cmd *exec.Cmd done chan error outputBuf *bytes.Buffer + outputWriter *switchableWriter +} + +type switchableWriter struct { + mu sync.Mutex + w io.Writer +} + +func (s *switchableWriter) Write(p []byte) (int, error) { + s.mu.Lock() + w := s.w + s.mu.Unlock() + return w.Write(p) +} + +func (s *switchableWriter) switchTo(w io.Writer) { + s.mu.Lock() + s.w = w + s.mu.Unlock() } func Setup() { @@ -93,8 +112,10 @@ func Setup() { } else { var buf bytes.Buffer testEnv.outputBuf = &buf - cmd.Stdout = &buf - cmd.Stderr = &buf + sw := &switchableWriter{w: &buf} + testEnv.outputWriter = sw + cmd.Stdout = sw + cmd.Stderr = sw } testEnv.cmd = cmd @@ -126,8 +147,7 @@ func Setup() { } if !verbose { - cmd.Stdout = io.Discard - cmd.Stderr = io.Discard + testEnv.outputWriter.switchTo(io.Discard) } }) } diff --git a/packages/ui/src/Atoms/Icons/index.tsx b/packages/ui/src/Atoms/Icons/index.tsx index 3f9124b5f..14f65237a 100644 --- a/packages/ui/src/Atoms/Icons/index.tsx +++ b/packages/ui/src/Atoms/Icons/index.tsx @@ -104,5 +104,12 @@ export { IconBrandFacebook } from "./IconBrandFacebook"; export { IconBrandLinkedin } from "./IconBrandLinkedin"; export { IconBrandX } from "./IconBrandX"; export { IconGlobe } from "./IconGlobe"; +export { + ArrowsClockwise as IconArrowsClockwise, + Envelope as IconEnvelope, + LockOpen as IconLockOpen, + User as IconUser, + UserCircle as IconUserCircle, +} from "@phosphor-icons/react"; export { SocialIcon } from "./SocialIcon"; export type { SocialIconProps } from "./SocialIcon"; diff --git a/pkg/server/api/connect/v1/graphql/oauth2.graphql b/pkg/server/api/connect/v1/graphql/oauth2.graphql index b8ec5f0db..768eb2f26 100644 --- a/pkg/server/api/connect/v1/graphql/oauth2.graphql +++ b/pkg/server/api/connect/v1/graphql/oauth2.graphql @@ -1,7 +1,7 @@ extend type Mutation { - authorizeDevice( - input: AuthorizeDeviceInput! - ): AuthorizeDevicePayload @session(required: PRESENT) + authorizeDevice( + input: AuthorizeDeviceInput! + ): AuthorizeDevicePayload @session(required: PRESENT) approveConsent( input: ApproveConsentInput!