fix: select "Your account" for members by default on insights (#19236)
This commit is contained in:
@@ -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>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user