fix: select "Your account" for members by default on insights (#19236)

This commit is contained in:
Eunjae Lee
2025-02-11 12:39:40 +00:00
committed by GitHub
parent e29b42a02b
commit 5a602f10e6
2 changed files with 36 additions and 29 deletions
@@ -3,6 +3,8 @@
import { useSession } from "next-auth/react";
import { createContext, useState } from "react";
import { MembershipRole } from "@calcom/prisma/enums";
import type { OrgTeamsType } from "../filters/OrgTeamsFilter";
export type InsightsOrgTeamsContextType = {
@@ -17,7 +19,11 @@ export const InsightsOrgTeamsContext = createContext<InsightsOrgTeamsContextType
export function InsightsOrgTeamsProvider({ children }: { children: React.ReactNode }) {
const session = useSession();
const currentOrgId = session.data?.user.org?.id;
const [orgTeamsType, setOrgTeamsType] = useState<OrgTeamsType>(currentOrgId ? "org" : "yours");
const orgRole = session?.data?.user?.org?.role;
const isAdminOrOwner = orgRole === MembershipRole.OWNER || orgRole === MembershipRole.ADMIN;
const [orgTeamsType, setOrgTeamsType] = useState<OrgTeamsType>(
isAdminOrOwner && currentOrgId ? "org" : "yours"
);
const [selectedTeamId, setSelectedTeamId] = useState<number | undefined>();
return (
@@ -78,6 +78,10 @@ export const OrgTeamsFilter = () => {
/>
) : null;
const teams = (data || [])
.filter((team) => !team.isOrg)
.filter((team) => team.name?.toLowerCase().includes(query.toLowerCase()));
return (
<AnimatedPopover text={text} PrefixComponent={PrefixComponent} popoverTriggerClassNames="mb-0">
<FilterCheckboxFieldsContainer>
@@ -126,35 +130,32 @@ export const OrgTeamsFilter = () => {
label={t("yours")}
/>
<Divider />
{(data || [])
.filter((team) => !team.isOrg)
.filter((team) => team.name?.toLowerCase().includes(query.toLowerCase()))
.map((team) => {
return (
<FilterCheckboxField
testId="org-teams-filter-item"
key={team.id}
id={team.name || ""}
label={team.name || ""}
checked={selectedTeamId === team.id && orgTeamsType === "team"}
onChange={(e) => {
if (e.target.checked) {
onSelected({ type: "team", teamId: team.id });
} else if (!e.target.checked) {
resetSelection();
}
}}
icon={
<Avatar
alt={team.name || ""}
imageSrc={getPlaceholderAvatar(team.logoUrl, team.name)}
size="xs"
/>
{teams.length > 0 && <Divider />}
{teams.map((team) => {
return (
<FilterCheckboxField
testId="org-teams-filter-item"
key={team.id}
id={team.name || ""}
label={team.name || ""}
checked={selectedTeamId === team.id && orgTeamsType === "team"}
onChange={(e) => {
if (e.target.checked) {
onSelected({ type: "team", teamId: team.id });
} else if (!e.target.checked) {
resetSelection();
}
/>
);
})}
}}
icon={
<Avatar
alt={team.name || ""}
imageSrc={getPlaceholderAvatar(team.logoUrl, team.name)}
size="xs"
/>
}
/>
);
})}
</FilterCheckboxFieldsContainer>
</AnimatedPopover>
);