feat: overhaul project workspace navigation
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
import type { TicketModel } from '@/types/models/ticket-model';
|
||||
|
||||
export type BoardDragTicket = {
|
||||
originColumnId: number;
|
||||
ticket: TicketModel;
|
||||
};
|
||||
|
||||
export type BoardDragPointer = {
|
||||
pointerId: number;
|
||||
pointerType: string;
|
||||
startX: number;
|
||||
startY: number;
|
||||
};
|
||||
|
||||
export type BoardDropTarget = {
|
||||
boardColumnId: number;
|
||||
ticketStatusId: number;
|
||||
};
|
||||
@@ -1,5 +1,7 @@
|
||||
export * from './auth';
|
||||
export * from './layout';
|
||||
export * from './navigation';
|
||||
export * from './notification-settings';
|
||||
export * from './page-props';
|
||||
export * from './project-navigation';
|
||||
export * from './ui';
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
export type NotificationFilterFormState = {
|
||||
attribute: string;
|
||||
id: string;
|
||||
operator: string;
|
||||
value: string;
|
||||
};
|
||||
|
||||
export type NotificationFilterPayload = {
|
||||
attribute: string;
|
||||
operator: string;
|
||||
value: string | string[] | null;
|
||||
};
|
||||
@@ -21,6 +21,7 @@ import type { TicketTypeModel } from '@/types/models/ticket-type-model';
|
||||
import type { UserApplicationModel } from '@/types/models/user-application-model';
|
||||
import type { UserGitConnectionModel } from '@/types/models/user-git-connection-model';
|
||||
import type { UserModel } from '@/types/models/user-model';
|
||||
import type { ProjectSettingsSection } from '@/types/project-navigation';
|
||||
|
||||
export type AdminUsersPageProps = {
|
||||
directPermissions: Record<string, string[]>;
|
||||
@@ -84,12 +85,6 @@ export type ProjectTemplateState = {
|
||||
templateSlug: string;
|
||||
};
|
||||
|
||||
export type ProjectShowPageProps = {
|
||||
canManageAccess: boolean;
|
||||
project: ProjectModel;
|
||||
templateState?: ProjectTemplateState | null;
|
||||
};
|
||||
|
||||
export type PermissionOption = {
|
||||
label: string;
|
||||
value: string;
|
||||
@@ -103,6 +98,7 @@ export type ProjectAccessPageProps = {
|
||||
teamPermissions: Record<string, string[]>;
|
||||
teams: TeamModel[];
|
||||
users: UserModel[];
|
||||
embedded?: boolean;
|
||||
};
|
||||
|
||||
export type TeamsIndexPageProps = {
|
||||
@@ -121,6 +117,7 @@ export type ProjectBoardSettingsPageProps = {
|
||||
status?: string | null;
|
||||
templateState?: ProjectTemplateState | null;
|
||||
ticketStatuses: TicketStatusModel[];
|
||||
embedded?: boolean;
|
||||
};
|
||||
|
||||
export type ProjectGeneralSettingsPageProps = {
|
||||
@@ -128,12 +125,14 @@ export type ProjectGeneralSettingsPageProps = {
|
||||
sourceTemplates: ProjectTemplateModel[];
|
||||
status?: string | null;
|
||||
templateState?: ProjectTemplateState | null;
|
||||
embedded?: boolean;
|
||||
};
|
||||
|
||||
export type ProjectBoardPageProps = {
|
||||
boardColumns: BoardColumnModel[];
|
||||
canCreateTickets: boolean;
|
||||
canEditTickets: boolean;
|
||||
canManageProject: boolean;
|
||||
project: ProjectModel;
|
||||
status?: string | null;
|
||||
};
|
||||
@@ -153,6 +152,7 @@ export type ProjectTicketMetadataSettingsPageProps = {
|
||||
ticketLinkTypes: TicketLinkTypeModel[];
|
||||
ticketPriorities: TicketPriorityModel[];
|
||||
ticketTypes: TicketTypeModel[];
|
||||
embedded?: boolean;
|
||||
};
|
||||
|
||||
export type ProjectRepositorySettingsPageProps = {
|
||||
@@ -161,6 +161,7 @@ export type ProjectRepositorySettingsPageProps = {
|
||||
repositoryConnections: RepositoryConnectionModel[];
|
||||
status?: string | null;
|
||||
templateState?: ProjectTemplateState | null;
|
||||
embedded?: boolean;
|
||||
};
|
||||
|
||||
export type ProjectNotificationSettingsPageProps = {
|
||||
@@ -174,12 +175,14 @@ export type ProjectNotificationSettingsPageProps = {
|
||||
status?: string | null;
|
||||
templateState?: ProjectTemplateState | null;
|
||||
templateVariables: NotificationActionTemplateVariableModel[];
|
||||
embedded?: boolean;
|
||||
};
|
||||
|
||||
export type ProjectBacklogPageProps = {
|
||||
backlogTicketStatuses: TicketStatusModel[];
|
||||
canCreateTickets: boolean;
|
||||
canEditTickets: boolean;
|
||||
canManageProject: boolean;
|
||||
project: ProjectModel;
|
||||
status?: string | null;
|
||||
ticketPriorities: TicketPriorityModel[];
|
||||
@@ -190,6 +193,7 @@ export type ProjectBacklogPageProps = {
|
||||
};
|
||||
|
||||
export type ProjectTicketCreatePageProps = {
|
||||
canManageProject: boolean;
|
||||
defaultTicketStatusId: number | null;
|
||||
parentTicketOptions: TicketReferenceModel[];
|
||||
project: ProjectModel;
|
||||
@@ -201,6 +205,26 @@ export type ProjectTicketCreatePageProps = {
|
||||
users: UserModel[];
|
||||
};
|
||||
|
||||
export type ProjectSettingsSectionData = Partial<
|
||||
Omit<
|
||||
ProjectAccessPageProps &
|
||||
ProjectBoardSettingsPageProps &
|
||||
ProjectGeneralSettingsPageProps &
|
||||
ProjectNotificationSettingsPageProps &
|
||||
ProjectRepositorySettingsPageProps &
|
||||
ProjectTicketMetadataSettingsPageProps,
|
||||
'embedded' | 'project' | 'status'
|
||||
>
|
||||
>;
|
||||
|
||||
export type ProjectSettingsPageProps = {
|
||||
activeSection: ProjectSettingsSection;
|
||||
error?: boolean;
|
||||
project: ProjectModel;
|
||||
sectionData: ProjectSettingsSectionData;
|
||||
status?: string | null;
|
||||
};
|
||||
|
||||
export type ProjectTicketPageProps = {
|
||||
canEditTicket: boolean;
|
||||
canManageProject: boolean;
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import type { ProjectModel } from '@/types/models/project-model';
|
||||
|
||||
export type ProjectPrimarySection = 'backlog' | 'board' | 'settings';
|
||||
|
||||
export type ProjectSettingsSection =
|
||||
| 'access'
|
||||
| 'board'
|
||||
| 'general'
|
||||
| 'metadata'
|
||||
| 'notifications'
|
||||
| 'repositories';
|
||||
|
||||
export type ProjectTabsProps = {
|
||||
active?: ProjectPrimarySection | null;
|
||||
canManageProject: boolean;
|
||||
project: ProjectModel;
|
||||
};
|
||||
|
||||
export type EmbeddedProjectSettingsSectionProps<T> = Omit<
|
||||
T,
|
||||
'embedded' | 'project' | 'status'
|
||||
>;
|
||||
Reference in New Issue
Block a user