diff --git a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx index 4e356debd4..3cf08edc37 100644 --- a/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx +++ b/apps/web/app/(use-page-wrapper)/settings/(settings-layout)/SettingsLayoutAppDirClient.tsx @@ -314,27 +314,41 @@ const TeamListCollapsible = () => { className="cursor-pointer" key={team.id} open={teamMenuState[index].teamMenuOpen} - onOpenChange={() => - setTeamMenuState([ - ...teamMenuState, - (teamMenuState[index] = { - ...teamMenuState[index], - teamMenuOpen: !teamMenuState[index].teamMenuOpen, - }), - ]) - }> + onOpenChange={(open) => { + const newTeamMenuState = [...teamMenuState]; + newTeamMenuState[index] = { + ...newTeamMenuState[index], + teamMenuOpen: open, + }; + setTeamMenuState(newTeamMenuState); + }}> -
- setTeamMenuState([ - ...teamMenuState, - (teamMenuState[index] = { - ...teamMenuState[index], + aria-controls={`team-content-${team.id}`} + aria-expanded={teamMenuState[index].teamMenuOpen} + onClick={() => { + const newTeamMenuState = [...teamMenuState]; + newTeamMenuState[index] = { + ...newTeamMenuState[index], + teamMenuOpen: !teamMenuState[index].teamMenuOpen, + }; + setTeamMenuState(newTeamMenuState); + }} + onKeyDown={(e) => { + if (e.key === "Enter" || e.key === " ") { + e.preventDefault(); + const newTeamMenuState = [...teamMenuState]; + newTeamMenuState[index] = { + ...newTeamMenuState[index], teamMenuOpen: !teamMenuState[index].teamMenuOpen, - }), - ]) - }> + }; + setTeamMenuState(newTeamMenuState); + } + }} + aria-label={`${team.name} ${ + teamMenuState[index].teamMenuOpen ? t("collapse_menu") : t("expand_menu") + }`}>
{teamMenuState[index].teamMenuOpen ? ( @@ -355,9 +369,9 @@ const TeamListCollapsible = () => { Inv. )} -
+ - + {team.accepted && ( + aria-label={t("settings_navigation")}> <> {tabsWithPermissions.map((tab) => { @@ -600,27 +614,43 @@ const SettingsSidebarContainer = ({ className="cursor-pointer" key={otherTeam.id} open={otherTeamMenuState[index].teamMenuOpen} - onOpenChange={() => - setOtherTeamMenuState([ - ...otherTeamMenuState, - (otherTeamMenuState[index] = { - ...otherTeamMenuState[index], - teamMenuOpen: !otherTeamMenuState[index].teamMenuOpen, - }), - ]) - }> + onOpenChange={(open) => { + const newOtherTeamMenuState = [...otherTeamMenuState]; + newOtherTeamMenuState[index] = { + ...newOtherTeamMenuState[index], + teamMenuOpen: open, + }; + setOtherTeamMenuState(newOtherTeamMenuState); + }}> -
- setOtherTeamMenuState([ - ...otherTeamMenuState, - (otherTeamMenuState[index] = { - ...otherTeamMenuState[index], + aria-controls={`other-team-content-${otherTeam.id}`} + aria-expanded={otherTeamMenuState[index].teamMenuOpen} + onClick={() => { + const newOtherTeamMenuState = [...otherTeamMenuState]; + newOtherTeamMenuState[index] = { + ...newOtherTeamMenuState[index], + teamMenuOpen: !otherTeamMenuState[index].teamMenuOpen, + }; + setOtherTeamMenuState(newOtherTeamMenuState); + }} + onKeyDown={(e) => { + if (e.key === "Enter" || e.key === " ") { + e.preventDefault(); + const newOtherTeamMenuState = [...otherTeamMenuState]; + newOtherTeamMenuState[index] = { + ...newOtherTeamMenuState[index], teamMenuOpen: !otherTeamMenuState[index].teamMenuOpen, - }), - ]) - }> + }; + setOtherTeamMenuState(newOtherTeamMenuState); + } + }} + aria-label={`${otherTeam.name} ${ + otherTeamMenuState[index].teamMenuOpen + ? t("collapse_menu") + : t("expand_menu") + }`}>
{otherTeamMenuState[index].teamMenuOpen ? ( @@ -636,9 +666,11 @@ const SettingsSidebarContainer = ({ /> )}

{otherTeam.name}

-
+ - +