Skip to content

Commit

Permalink
add oidc loading suspense
Browse files Browse the repository at this point in the history
  • Loading branch information
jsladerman committed Sep 9, 2024
1 parent ee1e252 commit 12c10d4
Showing 1 changed file with 44 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
FormField,
Modal,
PeopleIcon,
Spinner,
} from '@pluralsh/design-system'
import {
BindingInput,
Expand All @@ -21,11 +22,11 @@ import {
InputMaybe,
OidcAuthMethod,
OidcProviderBinding,
useRepositoryQuery,
useRepositorySuspenseQuery,
useUpdateOidcProviderMutation,
} from 'generated/graphql'
import { isEmpty } from 'lodash'
import { useState } from 'react'
import { Suspense, useState } from 'react'
import { useTheme } from 'styled-components'

export function ConsoleInstanceOIDC({
Expand All @@ -36,31 +37,40 @@ export function ConsoleInstanceOIDC({
const [open, setOpen] = useState(false)

return (
<ImpersonateServiceAccount
id={instance.console?.owner?.id}
renderIndicators={false}
<Suspense
fallback={
<Spinner
size={24}
css={{ width: '100%' }}
/>
}
>
<>
<Button
secondary
startIcon={<PeopleIcon />}
onClick={() => setOpen(true)}
>
OIDC
</Button>
<Modal
onOpenAutoFocus={(e) => e.preventDefault()}
open={open}
onClose={() => setOpen(false)}
size="large"
>
<ConsoleInstanceOIDCInner
instance={instance}
<ImpersonateServiceAccount
id={instance.console?.owner?.id}
renderIndicators={false}
>
<>
<Button
secondary
startIcon={<PeopleIcon />}
onClick={() => setOpen(true)}
>
OIDC
</Button>
<Modal
onOpenAutoFocus={(e) => e.preventDefault()}
open={open}
onClose={() => setOpen(false)}
/>
</Modal>
</>
</ImpersonateServiceAccount>
size="large"
>
<ConsoleInstanceOIDCInner
instance={instance}
onClose={() => setOpen(false)}
/>
</Modal>
</>
</ImpersonateServiceAccount>
</Suspense>
)
}

Expand All @@ -71,24 +81,18 @@ function ConsoleInstanceOIDCInner({
instance: ConsoleInstanceFragment
onClose: () => void
}) {
const [bindings, setBindings] = useState<any>([])
const [redirectUris, setRedirectUris] = useState<InputMaybe<string>[]>([])

const {
data,
loading: loadingRepo,
error: errorRepo,
} = useRepositoryQuery({
const { data, error: errorRepo } = useRepositorySuspenseQuery({
variables: { name: 'console' },
fetchPolicy: 'cache-and-network',
onCompleted: (data) => {
setBindings(data?.repository?.installation?.oidcProvider?.bindings)
setRedirectUris(
data?.repository?.installation?.oidcProvider?.redirectUris ?? []
)
},
})

const [bindings, setBindings] = useState<any>(
data.repository?.installation?.oidcProvider?.bindings ?? []
)
const [redirectUris, setRedirectUris] = useState<InputMaybe<string>[]>(
data.repository?.installation?.oidcProvider?.redirectUris ?? []
)

const installation = data?.repository?.installation
const provider = installation?.oidcProvider

Expand All @@ -109,7 +113,7 @@ function ConsoleInstanceOIDCInner({
onCompleted: onClose,
})

if (!provider?.bindings || loadingRepo || errorRepo) return null
if (!provider?.bindings || errorRepo) return <p>Something went wrong.</p>

return (
<Flex
Expand Down

0 comments on commit 12c10d4

Please sign in to comment.