fix: Switch workspace unreliable

This commit is contained in:
Tom Moor
2022-12-17 21:50:50 -05:00
parent 4b66a52a52
commit 9618d514e1
2 changed files with 26 additions and 23 deletions

View File

@@ -6,31 +6,32 @@ import RootStore from "~/stores/RootStore";
import TeamNew from "~/scenes/TeamNew";
import TeamLogo from "~/components/TeamLogo";
import { createAction } from "~/actions";
import { ActionContext } from "~/types";
import { TeamSection } from "../sections";
export const createTeamsList = ({ stores }: { stores: RootStore }) => {
return (
stores.auth.availableTeams?.map((session) =>
createAction({
name: session.name,
section: TeamSection,
keywords: "change switch workspace organization team",
icon: () => (
<StyledTeamLogo
alt={session.name}
model={{
initial: session.name[0],
avatarUrl: session.avatarUrl,
id: session.id,
color: stringToColor(session.id),
}}
size={24}
/>
),
visible: ({ currentTeamId }) => currentTeamId !== session.id,
perform: () => (window.location.href = session.url),
})
) ?? []
stores.auth.availableTeams?.map((session) => ({
id: `switch-${session.id}`,
name: session.name,
section: TeamSection,
keywords: "change switch workspace organization team",
icon: () => (
<StyledTeamLogo
alt={session.name}
model={{
initial: session.name[0],
avatarUrl: session.avatarUrl,
id: session.id,
color: stringToColor(session.id),
}}
size={24}
/>
),
visible: ({ currentTeamId }: ActionContext) =>
currentTeamId !== session.id,
perform: () => (window.location.href = session.url),
})) ?? []
);
};

View File

@@ -6,6 +6,7 @@ import ContextMenu from "~/components/ContextMenu";
import Template from "~/components/ContextMenu/Template";
import { navigateToSettings, logout } from "~/actions/definitions/navigation";
import { createTeam, createTeamsList } from "~/actions/definitions/teams";
import useActionContext from "~/hooks/useActionContext";
import usePrevious from "~/hooks/usePrevious";
import useStores from "~/hooks/useStores";
import separator from "~/menus/separator";
@@ -20,6 +21,7 @@ const OrganizationMenu: React.FC = ({ children }) => {
const { theme } = stores.ui;
const previousTheme = usePrevious(theme);
const { t } = useTranslation();
const context = useActionContext({ isContextMenu: true });
React.useEffect(() => {
if (theme !== previousTheme) {
@@ -31,13 +33,13 @@ const OrganizationMenu: React.FC = ({ children }) => {
// menu is not cached at all.
const actions = React.useMemo(() => {
return [
...createTeamsList({ stores }),
...createTeamsList(context),
createTeam,
separator(),
navigateToSettings,
logout,
];
}, [stores]);
}, [context]);
return (
<>