chore: removed guests from assignees filters (#6402)

This commit is contained in:
Vamsi Krishna
2025-01-15 16:05:56 +05:30
committed by GitHub
parent 75d14e7c3a
commit 0345336d90
3 changed files with 20 additions and 1 deletions

View File

@@ -246,6 +246,7 @@ export const ProjectViewIssuesHeader: React.FC = observer(() => {
layoutDisplayFiltersOptions={
activeLayout ? ISSUE_DISPLAY_FILTERS_BY_LAYOUT.issues[activeLayout] : undefined
}
projectId={projectId.toString()}
labels={projectLabels}
memberIds={projectMemberIds ?? undefined}
states={projectStates}

View File

@@ -120,6 +120,7 @@ const HeaderFilters = observer((props: Props) => {
layoutDisplayFiltersOptions={layoutDisplayFiltersOptions}
labels={projectLabels}
memberIds={projectMemberIds ?? undefined}
projectId={projectId}
states={projectStates}
cycleViewDisabled={!currentProjectDetails?.cycle_view}
moduleViewDisabled={!currentProjectDetails?.module_view}

View File

@@ -27,9 +27,11 @@ import {
FilterIssueGrouping,
} from "@/components/issues";
// hooks
import { useMember } from "@/hooks/store";
import { usePlatformOS } from "@/hooks/use-platform-os";
// plane web components
import { FilterIssueTypes, FilterTeamProjects } from "@/plane-web/components/issues";
import { EUserPermissions } from "@/plane-web/constants";
type Props = {
filters: IIssueFilterOptions;
@@ -37,6 +39,7 @@ type Props = {
handleDisplayFiltersUpdate?: (updatedDisplayFilter: Partial<IIssueDisplayFilterOptions>) => void;
handleFiltersUpdate: (key: keyof IIssueFilterOptions, value: string | string[]) => void;
layoutDisplayFiltersOptions: ILayoutDisplayFiltersOptions | undefined;
projectId?: string;
labels?: IIssueLabel[] | undefined;
memberIds?: string[] | undefined;
states?: IState[] | undefined;
@@ -52,6 +55,7 @@ export const FilterSelection: React.FC<Props> = observer((props) => {
handleDisplayFiltersUpdate,
handleFiltersUpdate,
layoutDisplayFiltersOptions,
projectId,
labels,
memberIds,
states,
@@ -62,9 +66,22 @@ export const FilterSelection: React.FC<Props> = observer((props) => {
// hooks
const { isMobile } = usePlatformOS();
const { moduleId, cycleId } = useParams();
const {
project: { getProjectMemberDetails },
} = useMember();
// states
const [filtersSearchQuery, setFiltersSearchQuery] = useState("");
// filter guests from assignees
const assigneeIds = memberIds?.filter((id) => {
if (projectId) {
const memeberDetails = getProjectMemberDetails(id, projectId);
const isGuest = (memeberDetails?.role || EUserPermissions.GUEST) === EUserPermissions.GUEST;
if (isGuest && memeberDetails) return false;
}
return true;
});
const isFilterEnabled = (filter: keyof IIssueFilterOptions) => layoutDisplayFiltersOptions?.filters.includes(filter);
const isDisplayFilterEnabled = (displayFilter: keyof IIssueDisplayFilterOptions) =>
@@ -140,7 +157,7 @@ export const FilterSelection: React.FC<Props> = observer((props) => {
<FilterAssignees
appliedFilters={filters.assignees ?? null}
handleUpdate={(val) => handleFiltersUpdate("assignees", val)}
memberIds={memberIds}
memberIds={assigneeIds}
searchQuery={filtersSearchQuery}
/>
</div>