Skip to content

Commit

Permalink
refactor: manage projects routes
Browse files Browse the repository at this point in the history
  • Loading branch information
haydencleary committed Nov 25, 2024
1 parent 3771e5c commit 43e3aee
Show file tree
Hide file tree
Showing 58 changed files with 334 additions and 307 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
import { useQueryClient } from "@tanstack/react-query";
import { Columns4, Table } from "lucide-react";
import { useParams } from "next/navigation";
import { useEffect, useMemo, useState } from "react";

import { FilterData } from "@/app/manage-projects/[projectSlug]/contributions/_components/filter-data/filter-data";
import { useContributionsFilterDataSidePanel } from "@/app/manage-projects/[projectSlug]/contributions/_components/filter-data/filter-data.hooks";
import { KanbanView } from "@/app/manage-projects/[projectSlug]/contributions/_features/kanban-view/kanban-view";
import { ListView } from "@/app/manage-projects/[projectSlug]/contributions/_features/list-view/list-view";

import { bootstrap } from "@/core/bootstrap";
import {
GetContributionsPortParams,
Expand All @@ -19,10 +23,6 @@ import { FilterDataProvider } from "@/shared/features/filters/_contexts/filter-d
import { useActionPooling } from "@/shared/hooks/action-pooling/action-pooling.context";
import { useContributionsSidepanel } from "@/shared/panels/contribution-sidepanel/contributions-sidepanel.hooks";

import { FilterData } from "./_components/filter-data/filter-data";
import { useContributionsFilterDataSidePanel } from "./_components/filter-data/filter-data.hooks";
import { KanbanView } from "./_features/kanban-view/kanban-view";
import { ListView } from "./_features/list-view/list-view";
import { ContributionsProps } from "./contributions.types";

const LIST = "list";
Expand All @@ -33,12 +33,11 @@ export type ContributionKanbanFilters = Omit<
"pageSize" | "pageIndex"
>;

export function Contributions(_: ContributionsProps) {
export function Contributions({ projectSlug }: ContributionsProps) {
const [toggleViews, setToggleViews] = useState<typeof LIST | typeof KANBAN>(KANBAN);
const [filters, setFilters] = useState<ContributionKanbanFilters>({});
const [search, setSearch] = useState<string>();
const [debouncedSearch, setDebouncedSearch] = useState<string>();
const { projectSlug } = useParams<{ projectSlug: string }>();
const { open: openFilterPanel } = useContributionsFilterDataSidePanel();
const { open: openContribution } = useContributionsSidepanel();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
export interface ContributionsProps {
projectId?: string;
projectSlug: string;
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"views": {
"contributors": "Contributors",
"contributions": "Contributions",
"financial": "Financial"
},
"activity": {
"buttons": {
"contributors": "Contributors",
"contributions": "Contributions",
"financial": "Financial"
},
"kanban": {
"columns": {
"notAssigned": "Not assigned",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { ContributionKanbanFilters } from "@/app/manage-projects/[projectSlug]/_features/contributions/contributions";
import { useContributionsFilterDataSidePanel } from "@/app/manage-projects/[projectSlug]/contributions/_components/filter-data/filter-data.hooks";

import { RewardedFilterType } from "@/core/kernel/filters/filters-facade-port";

Expand All @@ -15,8 +16,6 @@ import { SidePanelHeader } from "@/shared/features/side-panels/side-panel-header
import { useSidePanel } from "@/shared/features/side-panels/side-panel/side-panel";
import { Translate } from "@/shared/translation/components/translate/translate";

import { useContributionsFilterDataSidePanel } from "./filter-data.hooks";

export function FilterData() {
const { name } = useContributionsFilterDataSidePanel();
const { Panel } = useSidePanel({ name });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ import { Plus } from "lucide-react";
import { useParams } from "next/navigation";
import { useMemo } from "react";

import { KanbanViewProps } from "@/app/manage-projects/[projectSlug]/contributions/_features/kanban-view/kanban-view.types";

import { ContributionReactQueryAdapter } from "@/core/application/react-query-adapter/contribution";
import { ProjectReactQueryAdapter } from "@/core/application/react-query-adapter/project";
import { GetContributionsQueryParams } from "@/core/domain/contribution/contribution-contract.types";
Expand All @@ -23,8 +25,6 @@ import { KanbanColumn } from "@/shared/features/kanban/kanban-column/kanban-colu
import { KanbanColumnProps } from "@/shared/features/kanban/kanban-column/kanban-column.types";
import { Translate } from "@/shared/translation/components/translate/translate";

import { KanbanViewProps } from "./kanban-view.types";

function Column({
type,
queryParams,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { useMemo } from "react";

import { ListViewProps } from "@/app/manage-projects/[projectSlug]/contributions/_features/list-view/list-view.types";

import { ContributionReactQueryAdapter } from "@/core/application/react-query-adapter/contribution";
import { GetContributionsQueryParams } from "@/core/domain/contribution/contribution-contract.types";
import {
Expand All @@ -16,8 +18,6 @@ import { ShowMore } from "@/shared/components/show-more/show-more";
import { CardContributionKanban } from "@/shared/features/card-contribution-kanban/card-contribution-kanban";
import { Translate } from "@/shared/translation/components/translate/translate";

import { ListViewProps } from "./list-view.types";

function useAccordionItem({
type,
queryParams,
Expand Down
11 changes: 11 additions & 0 deletions app/manage-projects/[projectSlug]/contributions/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
"use client";

import { Contributions } from "@/app/manage-projects/[projectSlug]/_features/contributions/contributions";

export default function ManageProgramsContributionsPage({
params: { projectSlug },
}: {
params: { projectSlug: string };
}) {
return <Contributions projectSlug={projectSlug} />;
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import Flag from "react-flagpack";
import { useTranslation } from "react-i18next";
import { useLocalStorage } from "react-use";

import { TableColumns } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_components/filter-columns/filter-columns.types";

import { ProjectReactQueryAdapter } from "@/core/application/react-query-adapter/project";
import { bootstrap } from "@/core/bootstrap";
import { GetBiContributorsQueryParams } from "@/core/domain/bi/bi-contract.types";
Expand All @@ -28,8 +30,6 @@ import { useRewardFlow } from "@/shared/panels/_flows/reward-flow/reward-flow.co
import { useContributorSidePanel } from "@/shared/panels/contributor-sidepanel/contributor-sidepanel.hooks";
import { Translate } from "@/shared/translation/components/translate/translate";

import { TableColumns } from "./filter-columns.types";

export function useFilterColumns() {
const { t } = useTranslation();
const { projectSlug = "" } = useParams<{ projectSlug: string }>();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import {
FilterColumnsProps,
TableColumns,
} from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_components/filter-columns/filter-columns.types";

import { TableColumnList } from "@/design-system/molecules/table-column-list";

import { Translate } from "@/shared/translation/components/translate/translate";

import { FilterColumnsProps, TableColumns } from "./filter-columns.types";

export function FilterColumns({ selectedIds, setSelectedIds }: FilterColumnsProps) {
return (
<TableColumnList
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ContributorsTableFilters } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/contributors-table";
import { ContributorsTableFilters } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/contributors-table";

import { bootstrap } from "@/core/bootstrap";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ContributorsBulkSidepanelData } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/_features/contributors-bulk-sidepanel/contributors-bulk-sidepanel.types";
import { ContributorsBulkSidepanelData } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_features/contributors-bulk-sidepanel/contributors-bulk-sidepanel.types";

import { useSinglePanelContext } from "@/shared/features/side-panels/side-panel/side-panel";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { useContext, useEffect, useMemo, useState } from "react";

import { useContributorsBulkSidePanel } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/_features/contributors-bulk-sidepanel/contributors-bulk-sidepanel.hooks";
import { LabelSelector } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/_features/label-selector/label-selector";
import { LabelSelectorProps } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/_features/label-selector/label-selector.types";
import { ContributorsTableContext } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/contributors-table.context";
import { useContributorsBulkSidePanel } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_features/contributors-bulk-sidepanel/contributors-bulk-sidepanel.hooks";
import { ContributorsBulkSidepanelData } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_features/contributors-bulk-sidepanel/contributors-bulk-sidepanel.types";
import { LabelSelector } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_features/label-selector/label-selector";
import { LabelSelectorProps } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_features/label-selector/label-selector.types";
import { ContributorsTableContext } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/contributors-table.context";

import { ProjectReactQueryAdapter } from "@/core/application/react-query-adapter/project";

Expand All @@ -22,8 +23,6 @@ import { useCanReward } from "@/shared/hooks/rewards/use-can-reward";
import { useRewardFlow } from "@/shared/panels/_flows/reward-flow/reward-flow.context";
import { Translate } from "@/shared/translation/components/translate/translate";

import { ContributorsBulkSidepanelData } from "./contributors-bulk-sidepanel.types";

type label = { id: string; for: number[] };

export function ContributorsBulkSidepanel() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { useMemo } from "react";

import { LabelSelectorProps } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_features/label-selector/label-selector.types";

import { ProjectReactQueryAdapter } from "@/core/application/react-query-adapter/project";

import { MenuItemPort } from "@/design-system/molecules/menu-item";
import { Select } from "@/design-system/molecules/select";

import { LabelSelectorProps } from "./label-selector.types";

export function LabelSelector({ selectedLabels, onAction, projectSlug }: LabelSelectorProps) {
const { data } = ProjectReactQueryAdapter.client.useGetProjectContributorLabels({
pathParams: { projectIdOrSlug: projectSlug },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import { OnChangeFn, RowSelectionState } from "@tanstack/react-table";
import { PropsWithChildren, createContext, useContext, useEffect, useState } from "react";

import { ContributorsBulkSidepanel } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/_features/contributors-bulk-sidepanel/contributors-bulk-sidepanel";
import { useContributorsBulkSidePanel } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/_features/contributors-bulk-sidepanel/contributors-bulk-sidepanel.hooks";
import { ContributorsBulkSidepanel } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_features/contributors-bulk-sidepanel/contributors-bulk-sidepanel";
import { useContributorsBulkSidePanel } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_features/contributors-bulk-sidepanel/contributors-bulk-sidepanel.hooks";

import { BiContributorInterface } from "@/core/domain/bi/models/bi-contributor-model";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ import { RowSelectionState, Updater, getCoreRowModel, useReactTable } from "@tan
import { useParams } from "next/navigation";
import { useContext, useMemo, useState } from "react";

import { FilterColumns } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/_components/filter-columns/filter-columns";
import { useFilterColumns } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/_components/filter-columns/filter-columns.hooks";
import { FilterData } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/_components/filter-data/filter-data";
import { useContributorFilterDataSidePanel } from "@/app/manage-projects/[projectSlug]/_features/contributors-table/_components/filter-data/filter-data.hooks";
import { FilterColumns } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_components/filter-columns/filter-columns";
import { useFilterColumns } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_components/filter-columns/filter-columns.hooks";
import { FilterData } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_components/filter-data/filter-data";
import { useContributorFilterDataSidePanel } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/_components/filter-data/filter-data.hooks";
import {
ContributorsTableContext,
ContributorsTableProvider,
} from "@/app/manage-projects/[projectSlug]/_features/contributors-table/contributors-table.context";
} from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/contributors-table.context";
import { ContributorsTableProps } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/contributors-table.types";

import { BiReactQueryAdapter } from "@/core/application/react-query-adapter/bi";
import { GetBiContributorsPortParams, GetBiContributorsQueryParams } from "@/core/domain/bi/bi-contract.types";
Expand Down Expand Up @@ -150,9 +151,7 @@ function SafeContributorsTable() {
);
}

export function ContributorsTable() {
const { projectSlug = "" } = useParams<{ projectSlug: string }>();

export function ContributorsTable({ projectSlug }: ContributorsTableProps) {
return (
<ContributorsTableProvider projectSlug={projectSlug}>
<SafeContributorsTable />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export interface ContributorsTableProps {
projectSlug: string;
}
11 changes: 11 additions & 0 deletions app/manage-projects/[projectSlug]/contributors/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
"use client";

import { ContributorsTable } from "@/app/manage-projects/[projectSlug]/contributors/_features/contributors-table/contributors-table";

export default function ManageProgramsContributorsPage({
params: { projectSlug },
}: {
params: { projectSlug: string };
}) {
return <ContributorsTable projectSlug={projectSlug} />;
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { useParams } from "next/navigation";

import { FinancialColumnChart } from "@/app/manage-projects/[projectSlug]/_features/financial/financial-column-chart/financial-column-chart";
import { FinancialColumnChart } from "@/app/manage-projects/[projectSlug]/financial/_features/financial-column-chart/financial-column-chart";

import { ProjectReactQueryAdapter } from "@/core/application/react-query-adapter/project";

Expand Down
Loading

0 comments on commit 43e3aee

Please sign in to comment.