44 * See License.AGPL.txt in the project root for license information.
55 */
66
7- import { OrganizationSettings } from "@gitpod/public-api/lib/gitpod/v1/organization_pb" ;
87import { FormEvent , useCallback , useEffect , useState } from "react" ;
98import { Heading2 , Heading3 , Subheading } from "../components/typography/headings" ;
109import { useIsOwner } from "../data/organizations/members-query" ;
1110import { useOrgSettingsQuery } from "../data/organizations/org-settings-query" ;
1211import { useCurrentOrg } from "../data/organizations/orgs-query" ;
13- import { useUpdateOrgSettingsMutation } from "../data/organizations/update-org-settings-mutation" ;
12+ import {
13+ UpdateOrganizationSettingsArgs ,
14+ useUpdateOrgSettingsMutation ,
15+ } from "../data/organizations/update-org-settings-mutation" ;
1416import { OrgSettingsPage } from "./OrgSettingsPage" ;
1517import { ConfigurationSettingsField } from "../repositories/detail/ConfigurationSettingsField" ;
1618import { useDocumentTitle } from "../hooks/use-document-title" ;
1719import { useToast } from "../components/toasts/Toasts" ;
18- import type { PlainMessage } from "@bufbuild/protobuf" ;
1920import { InputField } from "../components/forms/InputField" ;
2021import { TextInput } from "../components/forms/TextInputField" ;
2122import { LoadingButton } from "@podkit/buttons/LoadingButton" ;
@@ -24,11 +25,16 @@ import { useOrgSuggestedRepos } from "../data/organizations/suggested-repositori
2425import { RepositoryListItem } from "../repositories/list/RepoListItem" ;
2526import { LoadingState } from "@podkit/loading/LoadingState" ;
2627import { Table , TableHeader , TableRow , TableHead , TableBody } from "@podkit/tables/Table" ;
28+ import { WelcomeMessageConfigurationField } from "./onboarding/WelcomeMessageConfigurationField" ;
29+
30+ export type UpdateTeamSettingsOptions = {
31+ throwMutateError ?: boolean ;
32+ } ;
2733
2834export default function TeamOnboardingPage ( ) {
2935 useDocumentTitle ( "Organization Settings - Onboarding" ) ;
3036 const { toast } = useToast ( ) ;
31- const org = useCurrentOrg ( ) . data ;
37+ const { data : org } = useCurrentOrg ( ) ;
3238 const isOwner = useIsOwner ( ) ;
3339
3440 const { data : settings } = useOrgSettingsQuery ( ) ;
@@ -39,7 +45,7 @@ export default function TeamOnboardingPage() {
3945 const [ internalLink , setInternalLink ] = useState < string | undefined > ( undefined ) ;
4046
4147 const handleUpdateTeamSettings = useCallback (
42- async ( newSettings : Partial < PlainMessage < OrganizationSettings > > , options ?: { throwMutateError ?: boolean } ) => {
48+ async ( newSettings : UpdateOrganizationSettingsArgs , options ?: UpdateTeamSettingsOptions ) => {
4349 if ( ! org ?. id ) {
4450 throw new Error ( "no organization selected" ) ;
4551 }
@@ -70,11 +76,10 @@ export default function TeamOnboardingPage() {
7076 await handleUpdateTeamSettings ( {
7177 onboardingSettings : {
7278 internalLink,
73- recommendedRepositories : settings ?. onboardingSettings ?. recommendedRepositories ?? [ ] ,
7479 } ,
7580 } ) ;
7681 } ,
77- [ handleUpdateTeamSettings , internalLink , settings ?. onboardingSettings ?. recommendedRepositories ] ,
82+ [ handleUpdateTeamSettings , internalLink ] ,
7883 ) ;
7984
8085 useEffect ( ( ) => {
@@ -146,7 +151,7 @@ export default function TeamOnboardingPage() {
146151 </ TableRow >
147152 </ TableHeader >
148153 < TableBody >
149- { ( suggestedRepos ?? [ ] ) . map ( ( repo ) => (
154+ { suggestedRepos ? .map ( ( repo ) => (
150155 < RepositoryListItem
151156 key = { repo . configurationId }
152157 configuration = { repo . configuration }
@@ -157,6 +162,8 @@ export default function TeamOnboardingPage() {
157162 </ Table >
158163 ) }
159164 </ ConfigurationSettingsField >
165+
166+ < WelcomeMessageConfigurationField handleUpdateTeamSettings = { handleUpdateTeamSettings } />
160167 </ div >
161168 </ OrgSettingsPage >
162169 ) ;
0 commit comments