2024-02-21 06:57:41 +00:00
import { EUserProjectRoles } from "./project" ;
import { EUserWorkspaceRoles } from "./workspace" ;
export interface EmptyStateDetails {
key : string ;
title? : string ;
description? : string ;
path? : string ;
primaryButton ? : {
icon? : any ;
text : string ;
comicBox ? : {
title? : string ;
description? : string ;
} ;
} ;
secondaryButton ? : {
icon? : any ;
text : string ;
comicBox ? : {
title? : string ;
description? : string ;
} ;
} ;
accessType ? : "workspace" | "project" ;
access? : EUserWorkspaceRoles | EUserProjectRoles ;
}
export type EmptyStateKeys = keyof typeof emptyStateDetails ;
const emptyStateDetails = {
// workspace
"workspace-dashboard" : {
key : "workspace-dashboard" ,
2024-02-13 11:05:20 +00:00
title : "Overview of your projects, activity, and metrics" ,
description :
" Welcome to Plane, we are excited to have you here. Create your first project and track your issues, and this page will transform into a space that helps you progress. Admins will also see items which help their team progress." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/onboarding/dashboard" ,
// path: "/empty-state/onboarding/",
2024-02-13 11:05:20 +00:00
primaryButton : {
text : "Build your first project" ,
} ,
comicBox : {
title : "Everything starts with a project in Plane" ,
description : "A project could be a product’ s roadmap, a marketing campaign, or launching a new car." ,
} ,
2024-02-21 06:57:41 +00:00
accessType : "workspace" ,
access : EUserWorkspaceRoles.ADMIN ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"workspace-analytics" : {
key : "workspace-analytics" ,
2024-02-13 11:05:20 +00:00
title : "Track progress, workloads, and allocations. Spot trends, remove blockers, and move work faster" ,
description :
"See scope versus demand, estimates, and scope creep. Get performance by team members and teams, and make sure your project runs on time." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/onboarding/analytics" ,
2024-02-13 11:05:20 +00:00
primaryButton : {
text : "Create Cycles and Modules first" ,
2024-02-21 06:57:41 +00:00
comicBox : {
title : "Analytics works best with Cycles + Modules" ,
description :
"First, timebox your issues into Cycles and, if you can, group issues that span more than a cycle into Modules. Check out both on the left nav." ,
} ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
accessType : "workspace" ,
access : EUserWorkspaceRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"workspace-projects" : {
key : "workspace-projects" ,
2024-02-13 11:05:20 +00:00
title : "Start a Project" ,
description :
"Think of each project as the parent for goal-oriented work. Projects are where Jobs, Cycles, and Modules live and, along with your colleagues, help you achieve that goal." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/onboarding/projects" ,
2024-02-13 11:05:20 +00:00
primaryButton : {
text : "Start your first project" ,
2024-02-21 06:57:41 +00:00
comicBox : {
title : "Everything starts with a project in Plane" ,
description : "A project could be a product’ s roadmap, a marketing campaign, or launching a new car." ,
} ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
accessType : "workspace" ,
access : EUserWorkspaceRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
// all-issues
"workspace-all-issues" : {
key : "workspace-all-issues" ,
2024-02-13 11:05:20 +00:00
title : "No issues in the project" ,
description : "First project done! Now, slice your work into trackable pieces with issues. Let's go!" ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/all-issues/all-issues" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"workspace-assigned" : {
key : "workspace-assigned" ,
2024-02-13 11:05:20 +00:00
title : "No issues yet" ,
description : "Issues assigned to you can be tracked from here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/all-issues/assigned" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"workspace-created" : {
key : "workspace-created" ,
2024-02-13 11:05:20 +00:00
title : "No issues yet" ,
description : "All issues created by you come here, track them here directly." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/all-issues/created" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"workspace-subscribed" : {
key : "workspace-subscribed" ,
2024-02-13 11:05:20 +00:00
title : "No issues yet" ,
description : "Subscribe to issues you are interested in, track all of them here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/all-issues/subscribed" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"workspace-custom-view" : {
key : "workspace-custom-view" ,
2024-02-13 11:05:20 +00:00
title : "No issues yet" ,
description : "Issues that applies to the filters, track all of them here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/all-issues/custom-view" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
// workspace settings
"workspace-settings-api-tokens" : {
key : "workspace-settings-api-tokens" ,
2024-02-13 11:05:20 +00:00
title : "No API tokens created" ,
description :
"Plane APIs can be used to integrate your data in Plane with any external system. Create a token to get started." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/workspace-settings/api-tokens" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"workspace-settings-webhooks" : {
key : "workspace-settings-webhooks" ,
2024-02-13 11:05:20 +00:00
title : "No webhooks added" ,
description : "Create webhooks to receive real-time updates and automate actions." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/workspace-settings/webhooks" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"workspace-settings-export" : {
key : "workspace-settings-export" ,
2024-02-13 11:05:20 +00:00
title : "No previous exports yet" ,
description : "Anytime you export, you will also have a copy here for reference." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/workspace-settings/exports" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"workspace-settings-import" : {
key : "workspace-settings-import" ,
2024-02-13 11:05:20 +00:00
title : "No previous imports yet" ,
description : "Find all your previous imports here and download them." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/workspace-settings/imports" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
// profile
"profile-assigned" : {
key : "profile-assigned" ,
2024-02-13 11:05:20 +00:00
title : "No issues are assigned to you" ,
description : "Issues assigned to you can be tracked from here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/profile/assigned" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"profile-created" : {
key : "profile-created" ,
2024-02-13 11:05:20 +00:00
title : "No issues yet" ,
description : "All issues created by you come here, track them here directly." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/profile/created" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"profile-subscribed" : {
key : "profile-subscribed" ,
2024-02-13 11:05:20 +00:00
title : "No issues yet" ,
description : "Subscribe to issues you are interested in, track all of them here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/profile/subscribed" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
// project settings
"project-settings-labels" : {
key : "project-settings-labels" ,
2024-02-13 11:05:20 +00:00
title : "No labels yet" ,
description : "Create labels to help organize and filter issues in you project." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/project-settings/labels" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-settings-integrations" : {
key : "project-settings-integrations" ,
2024-02-13 11:05:20 +00:00
title : "No integrations configured" ,
description : "Configure GitHub and other integrations to sync your project issues." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/project-settings/integrations" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-settings-estimate" : {
key : "project-settings-estimate" ,
2024-02-13 11:05:20 +00:00
title : "No estimates added" ,
description : "Create a set of estimates to communicate the amount of work per issue." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/project-settings/esitmates" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
// project cycles
"project-cycles" : {
key : "project-cycles" ,
2024-02-13 11:05:20 +00:00
title : "Group and timebox your work in Cycles." ,
description :
"Break work down by timeboxed chunks, work backwards from your project deadline to set dates, and make tangible progress as a team." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/onboarding/cycles" ,
2024-02-13 11:05:20 +00:00
primaryButton : {
text : "Set your first cycle" ,
2024-02-21 06:57:41 +00:00
comicBox : {
title : "Cycles are repetitive time-boxes." ,
description :
"A sprint, an iteration, and or any other term you use for weekly or fortnightly tracking of work is a cycle." ,
} ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
accessType : "workspace" ,
access : EUserWorkspaceRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-cycle-no-issues" : {
key : "project-cycle-no-issues" ,
2024-02-13 11:05:20 +00:00
title : "No issues added to the cycle" ,
description : "Add or create issues you wish to timebox and deliver within this cycle" ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/cycle-issue/" ,
2024-02-13 11:05:20 +00:00
primaryButton : {
text : "Create new issue " ,
} ,
secondaryButton : {
text : "Add an existing issue" ,
} ,
2024-02-21 06:57:41 +00:00
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-cycle-active" : {
key : "project-cycle-active" ,
2024-02-13 11:05:20 +00:00
title : "No active cycles" ,
description :
"An active cycle includes any period that encompasses today's date within its range. Find the progress and details of the active cycle here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/cycle/active" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-cycle-upcoming" : {
key : "project-cycle-upcoming" ,
2024-02-13 11:05:20 +00:00
title : "No upcoming cycles" ,
description : "Upcoming cycles on deck! Just add dates to cycles in draft, and they'll show up right here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/cycle/upcoming" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-cycle-completed" : {
key : "project-cycle-completed" ,
2024-02-13 11:05:20 +00:00
title : "No completed cycles" ,
description : "Any cycle with a past due date is considered completed. Explore all completed cycles here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/cycle/completed" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-cycle-draft" : {
key : "project-cycle-draft" ,
2024-02-13 11:05:20 +00:00
title : "No draft cycles" ,
description : "No dates added in cycles? Find them here as drafts." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/cycle/draft" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
// empty filters
"project-empty-filter" : {
key : "project-empty-filter" ,
2024-02-13 11:05:20 +00:00
title : "No issues found matching the filters applied" ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/empty-filters/" ,
2024-02-13 11:05:20 +00:00
secondaryButton : {
text : "Clear all filters" ,
} ,
2024-02-21 06:57:41 +00:00
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-archived-empty-filter" : {
key : "project-archived-empty-filter" ,
2024-02-13 11:05:20 +00:00
title : "No issues found matching the filters applied" ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/empty-filters/" ,
2024-02-13 11:05:20 +00:00
secondaryButton : {
text : "Clear all filters" ,
} ,
2024-02-21 06:57:41 +00:00
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-draft-empty-filter" : {
key : "project-draft-empty-filter" ,
2024-02-13 11:05:20 +00:00
title : "No issues found matching the filters applied" ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/empty-filters/" ,
2024-02-13 11:05:20 +00:00
secondaryButton : {
text : "Clear all filters" ,
} ,
2024-02-21 06:57:41 +00:00
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
// project issues
"project-no-issues" : {
key : "project-no-issues" ,
title : "Create an issue and assign it to someone, even yourself" ,
description :
"Think of issues as jobs, tasks, work, or JTBD. Which we like. An issue and its sub-issues are usually time-based actionables assigned to members of your team. Your team creates, assigns, and completes issues to move your project towards its goal." ,
path : "/empty-state/onboarding/issues" ,
primaryButton : {
text : "Create your first issue" ,
comicBox : {
title : "Issues are building blocks in Plane." ,
description :
"Redesign the Plane UI, Rebrand the company, or Launch the new fuel injection system are examples of issues that likely have sub-issues." ,
} ,
} ,
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
} ,
"project-archived-no-issues" : {
key : "project-archived-no-issues" ,
2024-02-13 11:05:20 +00:00
title : "No archived issues yet" ,
description :
"Archived issues help you remove issues you completed or cancelled from focus. You can set automation to auto archive issues and find them here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/archived/empty-issues" ,
2024-02-13 11:05:20 +00:00
primaryButton : {
2024-02-28 11:23:26 +00:00
text : "Set automation" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-draft-no-issues" : {
key : "project-draft-no-issues" ,
2024-02-13 11:05:20 +00:00
title : "No draft issues yet" ,
description :
"Quickly stepping away but want to keep your place? No worries – save a draft now. Your issues will be right here waiting for you." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/draft/draft-issues-empty" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"views-empty-search" : {
key : "views-empty-search" ,
title : "No matching views" ,
description : "No views match the search criteria. Create a new view instead." ,
path : "/empty-state/search/search" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"projects-empty-search" : {
key : "projects-empty-search" ,
title : "No matching projects" ,
description : "No projects detected with the matching criteria. Create a new project instead." ,
path : "/empty-state/search/project" ,
} ,
"commandK-empty-search" : {
key : "commandK-empty-search" ,
title : "No results found. " ,
path : "/empty-state/search/search" ,
} ,
"members-empty-search" : {
key : "members-empty-search" ,
title : "No matching members" ,
description : "Add them to the project if they are already a part of the workspace" ,
path : "/empty-state/search/member" ,
} ,
// project module
"project-module-issues" : {
key : "project-modules-issues" ,
2024-02-13 11:05:20 +00:00
title : "No issues in the module" ,
description : "Create or add issues which you want to accomplish as part of this module" ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/module-issues/" ,
2024-02-13 11:05:20 +00:00
primaryButton : {
text : "Create new issue " ,
} ,
secondaryButton : {
text : "Add an existing issue" ,
} ,
2024-02-21 06:57:41 +00:00
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-module" : {
key : "project-module" ,
2024-02-13 11:05:20 +00:00
title : "Map your project milestones to Modules and track aggregated work easily." ,
description :
"A group of issues that belong to a logical, hierarchical parent form a module. Think of them as a way to track work by project milestones. They have their own periods and deadlines as well as analytics to help you see how close or far you are from a milestone." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/onboarding/modules" ,
2024-02-13 11:05:20 +00:00
primaryButton : {
text : "Build your first module" ,
2024-02-21 06:57:41 +00:00
comicBox : {
title : "Modules help group work by hierarchy." ,
description : "A cart module, a chassis module, and a warehouse module are all good example of this grouping." ,
} ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
// project views
"project-view" : {
key : "project-view" ,
2024-02-13 11:05:20 +00:00
title : "Save filtered views for your project. Create as many as you need" ,
description :
"Views are a set of saved filters that you use frequently or want easy access to. All your colleagues in a project can see everyone’ s views and choose whichever suits their needs best." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/onboarding/views" ,
2024-02-13 11:05:20 +00:00
primaryButton : {
text : "Create your first view" ,
2024-02-21 06:57:41 +00:00
comicBox : {
title : "Views work atop Issue properties." ,
description : "You can create a view from here with as many properties as filters as you see fit." ,
} ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
// project pages
"project-page" : {
2024-02-13 11:05:20 +00:00
key : "pages" ,
title : "Write a note, a doc, or a full knowledge base. Get Galileo, Plane’ s AI assistant, to help you get started" ,
description :
"Pages are thoughts potting space in Plane. Take down meeting notes, format them easily, embed issues, lay them out using a library of components, and keep them all in your project’ s context. To make short work of any doc, invoke Galileo, Plane’ s AI, with a shortcut or the click of a button." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/onboarding/pages" ,
2024-02-13 11:05:20 +00:00
primaryButton : {
text : "Create your first page" ,
2024-02-21 06:57:41 +00:00
comicBox : {
title : "A page can be a doc or a doc of docs." ,
description :
"We wrote Nikhil and Meera’ s love story. You could write your project’ s mission, goals, and eventual vision." ,
} ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-page-all" : {
key : "project-page-all" ,
2024-02-13 11:05:20 +00:00
title : "Write a note, a doc, or a full knowledge base" ,
description :
"Pages help you organise your thoughts to create wikis, discussions or even document heated takes for your project. Use it wisely!" ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/pages/all" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-page-favorite" : {
key : "project-page-favorite" ,
2024-02-13 11:05:20 +00:00
title : "No favorite pages yet" ,
description : "Favorites for quick access? mark them and find them right here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/pages/favorites" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-page-private" : {
key : "project-page-private" ,
2024-02-13 11:05:20 +00:00
title : "No private pages yet" ,
description : "Keep your private thoughts here. When you're ready to share, the team's just a click away." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/pages/private" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-page-shared" : {
key : "project-page-shared" ,
2024-02-13 11:05:20 +00:00
title : "No shared pages yet" ,
description : "See pages shared with everyone in your project right here." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/pages/shared" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-page-archived" : {
key : "project-page-archived" ,
2024-02-13 11:05:20 +00:00
title : "No archived pages yet" ,
description : "Archive pages not on your radar. Access them here when needed." ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/pages/archived" ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
"project-page-recent" : {
key : "project-page-recent" ,
2024-02-13 11:05:20 +00:00
title : "Write a note, a doc, or a full knowledge base" ,
description :
"Pages help you organise your thoughts to create wikis, discussions or even document heated takes for your project. Use it wisely! Pages will be sorted and grouped by last updated" ,
2024-02-21 06:57:41 +00:00
path : "/empty-state/pages/recent" ,
2024-02-13 11:05:20 +00:00
primaryButton : {
text : "Create new page" ,
} ,
2024-02-21 06:57:41 +00:00
accessType : "project" ,
access : EUserProjectRoles.MEMBER ,
2024-02-13 11:05:20 +00:00
} ,
2024-02-21 06:57:41 +00:00
} as const ;
export const EMPTY_STATE_DETAILS : Record < EmptyStateKeys , EmptyStateDetails > = emptyStateDetails ;