Skip to content

Commit ae375d0

Browse files
kyle-ssgclaude
andauthored
refactor: migrate OrganisationSelect to TypeScript FC (#7232)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8a449c8 commit ae375d0

File tree

3 files changed

+54
-68
lines changed

3 files changed

+54
-68
lines changed

frontend/web/components/OrganisationSelect.js

Lines changed: 0 additions & 58 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import React, { FC } from 'react'
2+
import { useGetOrganisationsQuery } from 'common/services/useOrganisation'
3+
4+
type OrganisationSelectProps = {
5+
onChange: (value: number) => void
6+
value?: number
7+
}
8+
9+
const OrganisationSelect: FC<OrganisationSelectProps> = ({
10+
onChange,
11+
value,
12+
}) => {
13+
const { data: organisations } = useGetOrganisationsQuery({})
14+
15+
const selectedOrg = organisations?.results?.find((org) => org.id === value)
16+
17+
return (
18+
<div className="d-flex">
19+
<Select
20+
className="react-select w-100"
21+
value={
22+
selectedOrg
23+
? { label: selectedOrg.name, value: selectedOrg.id }
24+
: null
25+
}
26+
onChange={({ value }: { value: number }) => {
27+
onChange?.(value)
28+
}}
29+
options={organisations?.results?.map((organisation) => ({
30+
label: organisation.name,
31+
value: organisation.id,
32+
}))}
33+
/>
34+
</div>
35+
)
36+
}
37+
38+
export default OrganisationSelect

frontend/web/components/pages/GitHubSetupPage.tsx

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ const GitHubSetupPage: FC<GitHubSetupPageType> = ({ location }) => {
3737
new URLSearchParams(location.search).get('installation_id') || ''
3838
const githubIntegrationSetupFromFlagsmithValue: string =
3939
localStorage?.githubIntegrationSetupFromFlagsmith
40-
const [organisation, setOrganisation] = useState<string>('')
40+
const lastOrgId = localStorage.lastEnv
41+
? JSON.parse(localStorage.lastEnv).orgId
42+
: undefined
43+
const [organisation, setOrganisation] = useState<string>(
44+
lastOrgId ? `${lastOrgId}` : '',
45+
)
4146
const [project, setProject] = useState<any>({})
4247
const [projects, setProjects] = useState<ProjectType[]>([])
4348
const [repositoryName, setRepositoryName] = useState<string>('')
@@ -127,15 +132,16 @@ const GitHubSetupPage: FC<GitHubSetupPageType> = ({ location }) => {
127132
/>
128133
<div className='mr-4 mb-4'>
129134
<label>Select your Flagsmith Organisation</label>
130-
<OrganisationSelect
131-
onChange={(organisationId: string) => {
132-
setOrganisation(`${organisationId}`)
133-
AppActions.selectOrganisation(organisationId)
134-
AppActions.getOrganisation(organisationId)
135-
}}
136-
showSettings={false}
137-
firstOrganisation
138-
/>
135+
<div style={{ width: '500px' }}>
136+
<OrganisationSelect
137+
value={organisation ? parseInt(organisation) : undefined}
138+
onChange={(organisationId) => {
139+
setOrganisation(`${organisationId}`)
140+
AppActions.selectOrganisation(organisationId)
141+
AppActions.getOrganisation(organisationId)
142+
}}
143+
/>
144+
</div>
139145
</div>
140146
<label>
141147
Select your Flagsmith Project and your Github Repository

0 commit comments

Comments
 (0)