From 7a931ebe4b36ff6666e9625d826f603ae36635f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Tue, 2 Dec 2025 14:43:25 +0200 Subject: [PATCH 1/4] Prevent team disband submission until confirmation input validates Also allow submitting the form with enter key press on the text input as this is the expected behaviour on web forms. I considered trying to implement the functionality using strongForm's refiner and onRefinerError methods but that seemed like more trouble than it's worth, especially given that the strongForm doesn't have internal "is disabled" state currently. --- .../teams/team/tabs/Settings/Settings.css | 6 +++++ .../teams/team/tabs/Settings/Settings.tsx | 27 +++++++++++++++---- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css index a39d9c96e..56a929ac6 100644 --- a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css +++ b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css @@ -21,6 +21,12 @@ } /* Disband team Form */ + .disband-team-form__form { + display: flex; + flex-direction: column; + align-self: stretch; + } + .disband-team-form__body { display: flex; flex-direction: column; diff --git a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx index 950efb302..13197522a 100644 --- a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx +++ b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx @@ -237,6 +237,8 @@ function DisbandTeamForm(props: { team_name: "", }); + const formDisabled = formInputs.team_name !== teamName; + type SubmitorOutput = Awaited>; async function submitor(data: typeof formInputs): Promise { @@ -315,15 +317,30 @@ function DisbandTeamForm(props: { {teamName} into the field below. - - updateFormFieldState({ field: "team_name", value: e.target.value }) - } - /> + +
{ + event.preventDefault(); + if (!formDisabled) { + strongForm.submit(); + } + }} + className="disband-team-form__form" + > + + updateFormFieldState({ + field: "team_name", + value: e.target.value, + }) + } + /> + { strongForm.submit(); }} From c5db94d9f4588f3c4ed73abf1dd0048a72c103f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Tue, 2 Dec 2025 14:46:50 +0200 Subject: [PATCH 2/4] Fix copy-pasted code --- .../app/settings/teams/team/tabs/Settings/Settings.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx index 13197522a..12bba1e43 100644 --- a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx +++ b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx @@ -355,4 +355,4 @@ function DisbandTeamForm(props: { ); } -LeaveTeamForm.displayName = "LeaveTeamForm"; +DisbandTeamForm.displayName = "DisbandTeamForm"; From 1fdc8f22f2fe47a148ac379426207188c64054fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Tue, 2 Dec 2025 14:48:36 +0200 Subject: [PATCH 3/4] Remove unused CSS definitions --- .../teams/team/tabs/Settings/Settings.css | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css index 56a929ac6..dbe6c9c0b 100644 --- a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css +++ b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css @@ -3,46 +3,12 @@ align-self: flex-start; } - /* Leave Team Form */ - .leave-team-form__body { - display: flex; - flex-direction: column; - gap: var(--gap-2xl); - align-items: flex-start; - align-self: stretch; - } - - .leave-team-form__text { - color: var(--modal-text-color--default); - font-weight: var(--font-weight-regular); - font-size: var(--font-size-body-lg); - font-style: normal; - line-height: var(--line-height-md); - } - - /* Disband team Form */ .disband-team-form__form { display: flex; flex-direction: column; align-self: stretch; } - .disband-team-form__body { - display: flex; - flex-direction: column; - gap: var(--gap-2xl); - align-items: flex-start; - align-self: stretch; - } - - .disband-team-form__text { - color: var(--modal-text-color--default); - font-weight: var(--font-weight-regular); - font-size: var(--font-size-Body-lg); - font-style: normal; - line-height: var(--line-height-md); - } - .disband-team-form__text--bold { color: var(--color-text-primary); From 64f00935ec6e1c1edae755805fb2912168af5e9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antti=20M=C3=A4ki?= Date: Tue, 2 Dec 2025 15:14:11 +0200 Subject: [PATCH 4/4] Remove broken team links from the team disband page The links assume they have access to a community id, which they don't when the user is browsing team settings page. We probably wouldn't want to link to team's package listing page from here anyway, but rather the team profile page, which doesn't exist yet. Either way, I don't see the links being very important in those modals anyway. Someone about to leave or disband the team probably doesn't care to check the team's profile one last time? --- .../teams/team/tabs/Settings/Settings.css | 11 ++++----- .../teams/team/tabs/Settings/Settings.tsx | 23 ++++--------------- 2 files changed, 8 insertions(+), 26 deletions(-) diff --git a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css index dbe6c9c0b..1b6e4bd61 100644 --- a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css +++ b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.css @@ -3,16 +3,13 @@ align-self: flex-start; } + .team-settings__text--bold { + font-weight: var(--font-weight-bold); + } + .disband-team-form__form { display: flex; flex-direction: column; align-self: stretch; } - - .disband-team-form__text--bold { - color: var(--color-text-primary); - - font-weight: var(--font-weight-bold); - line-height: var(--line-height-bold); - } } diff --git a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx index 12bba1e43..563625f48 100644 --- a/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx +++ b/apps/cyberstorm-remix/app/settings/teams/team/tabs/Settings/Settings.tsx @@ -14,7 +14,6 @@ import { Modal, NewButton, NewIcon, - NewLink, NewTextInput, useToast, } from "@thunderstore/cyberstorm"; @@ -179,14 +178,7 @@ function LeaveTeamForm(props: { You are about to leave the team{" "} - - {teamName}. - + {teamName}. @@ -303,19 +295,12 @@ function DisbandTeamForm(props: {
You are about to disband the team{" "} - - {teamName}. - + {teamName}.
As a precaution, to disband your team, please input{" "} - {teamName} into - the field below. + {teamName} into the + field below.