Skip to content

Commit 266b22c

Browse files
committed
Remove hack for fixing un-setting featured members
The hack was introduced in #20620 - Update welcome message configuration to handle optional enabled field - Simplify welcome message update logic in various components - Modify protobuf definitions to make enabled field optional - Remove redundant checks and simplify type handling in converters and components Tool: gitpod/catfood.gitpod.cloud
1 parent 483b6bc commit 266b22c

File tree

11 files changed

+764
-726
lines changed

11 files changed

+764
-726
lines changed

components/dashboard/src/data/organizations/update-org-settings-mutation.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ export const useUpdateOrgSettingsMutation = () => {
4646
}
4747
}
4848

49-
const settings = await organizationClient.updateOrganizationSettings(update);
50-
return settings.settings!;
49+
const { settings } = await organizationClient.updateOrganizationSettings(update);
50+
return settings!;
5151
},
5252
onSuccess: (settings) => {
5353
invalidateWorkspaceClasses();

components/dashboard/src/teams/TeamOnboarding.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ export default function TeamOnboardingPage() {
5353
throw new Error("no organization settings change permission");
5454
}
5555
try {
56-
await updateTeamSettings.mutateAsync({
57-
...newSettings,
58-
});
56+
await updateTeamSettings.mutateAsync(newSettings);
5957
toast("Organization settings updated");
6058
} catch (error) {
6159
if (options?.throwMutateError) {

components/dashboard/src/teams/onboarding/OrgMemberAvatarInput.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export const OrgMemberAvatarInput = ({ settings, setFeaturedMemberId }: Props) =
2626
const handleSelectionChange = useCallback(
2727
(selectedId: string) => {
2828
const member = members?.find((m) => m.userId === selectedId);
29-
setFeaturedMemberId(selectedId || undefined);
29+
setFeaturedMemberId(selectedId);
3030
setAvatarUrl(member?.avatarUrl);
3131
},
3232
[members, setFeaturedMemberId],

components/dashboard/src/teams/onboarding/WelcomeMessageConfigurationField.tsx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
* See License.AGPL.txt in the project root for license information.
55
*/
66

7-
import { PlainMessage } from "@bufbuild/protobuf";
8-
import type { OnboardingSettings_WelcomeMessage } from "@gitpod/public-api/lib/gitpod/v1/organization_pb";
97
import { SwitchInputField } from "@podkit/switch/Switch";
108
import { Heading3, Subheading } from "@podkit/typography/Headings";
119
import { useCallback, useState } from "react";
@@ -40,20 +38,20 @@ export const WelcomeMessageConfigurationField = ({ handleUpdateTeamSettings }: P
4038
const [welcomeMessageEditorOpen, setWelcomeMessageEditorOpen] = useState(false);
4139

4240
const handleUpdateWelcomeMessage = useCallback(
43-
async (newSettings: PlainMessage<OnboardingSettings_WelcomeMessage>, options?: UpdateTeamSettingsOptions) => {
41+
async (
42+
newSettings: NonNullable<UpdateOrganizationSettingsArgs["onboardingSettings"]>["welcomeMessage"],
43+
options?: UpdateTeamSettingsOptions,
44+
) => {
4445
await handleUpdateTeamSettings(
4546
{
4647
onboardingSettings: {
47-
welcomeMessage: {
48-
...settings?.onboardingSettings?.welcomeMessage,
49-
...newSettings,
50-
},
48+
welcomeMessage: newSettings,
5149
},
5250
},
5351
options,
5452
);
5553
},
56-
[handleUpdateTeamSettings, settings?.onboardingSettings?.welcomeMessage],
54+
[handleUpdateTeamSettings],
5755
);
5856

5957
return (

components/dashboard/src/teams/onboarding/WelcomeMessageEditor.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
* See License.AGPL.txt in the project root for license information.
55
*/
66

7-
import { PlainMessage } from "@bufbuild/protobuf";
87
import type { OnboardingSettings_WelcomeMessage } from "@gitpod/public-api/lib/gitpod/v1/organization_pb";
98
import { Button } from "@podkit/buttons/Button";
109
import { LoadingButton } from "@podkit/buttons/LoadingButton";
@@ -17,14 +16,15 @@ import { TextInput } from "../../components/forms/TextInputField";
1716
import { UpdateTeamSettingsOptions } from "../TeamOnboarding";
1817
import { OrgMemberAvatarInput } from "./OrgMemberAvatarInput";
1918
import { gitpodWelcomeSubheading } from "./WelcomeMessageConfigurationField";
19+
import { UpdateOrganizationSettingsArgs } from "../../data/organizations/update-org-settings-mutation";
2020

2121
type Props = {
2222
settings: OnboardingSettings_WelcomeMessage | undefined;
2323
isLoading: boolean;
2424
isOwner: boolean;
2525
isOpen: boolean;
2626
handleUpdateWelcomeMessage: (
27-
newSettings: PlainMessage<OnboardingSettings_WelcomeMessage>,
27+
newSettings: NonNullable<UpdateOrganizationSettingsArgs["onboardingSettings"]>["welcomeMessage"],
2828
options?: UpdateTeamSettingsOptions,
2929
) => Promise<void>;
3030
setIsOpen: (isOpen: boolean) => void;
@@ -44,12 +44,12 @@ export const WelcomeMessageEditorModal = ({
4444
const updateWelcomeMessage = useCallback(
4545
async (e: FormEvent) => {
4646
e.preventDefault();
47+
console.log("updateWelcomeMessage", message, featuredMemberId);
4748
try {
4849
await handleUpdateWelcomeMessage(
4950
{
5051
message,
5152
featuredMemberId,
52-
enabled: settings?.enabled ?? false,
5353
},
5454
{
5555
throwMutateError: true,
@@ -61,7 +61,7 @@ export const WelcomeMessageEditorModal = ({
6161
setError(error.message);
6262
}
6363
},
64-
[handleUpdateWelcomeMessage, message, featuredMemberId, settings?.enabled, setIsOpen],
64+
[handleUpdateWelcomeMessage, message, featuredMemberId, setIsOpen],
6565
);
6666

6767
return (

components/public-api/gitpod/v1/organization.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ message RoleRestrictionEntry {
5353
message OnboardingSettings {
5454
message WelcomeMessage {
5555
// enabled specifies whether the welcome message is enabled
56-
bool enabled = 1;
56+
optional bool enabled = 1;
5757

5858
// message is the welcome message for the organization
5959
optional string message = 2;

0 commit comments

Comments
 (0)