From 1dc950627c17129de614eb721535b59c6579e77a Mon Sep 17 00:00:00 2001 From: Pat Needham Date: Wed, 22 May 2024 01:52:05 -0400 Subject: [PATCH 1/4] meta title and content added for sketch routes --- .../$branchSlug.$versionSlug.tsx | 34 ++++++++++++++++++- .../artboards+/$artboardSlug+/$branchSlug.tsx | 29 +++++++++++++++- .../artboards+/$artboardSlug+/route.tsx | 23 ++++++++++++- 3 files changed, 83 insertions(+), 3 deletions(-) diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx index 860afe40..63e47c8c 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx @@ -1,5 +1,9 @@ import { invariantResponse } from '@epic-web/invariant' -import { type LoaderFunctionArgs, json } from '@remix-run/node' +import { + type LoaderFunctionArgs, + json, + type MetaFunction, +} from '@remix-run/node' import { useLoaderData } from '@remix-run/react' import { GeneralErrorBoundary } from '#app/components/error-boundary' import { @@ -14,9 +18,13 @@ import { getArtboardVersionWithDesignsAndLayers } from '#app/models/artboard-ver import { getUserBasic } from '#app/models/user/user.get.server' import { artboardVersionGeneratorBuildService } from '#app/services/artboard/version/generator/build.service' import { requireUserId } from '#app/utils/auth.server' +import { routeLoaderMetaData } from '#app/utils/matches' +import { projectLoaderRoute } from '../route' +import { artboardBranchLoaderRoute } from './$branchSlug' import { CanvasContent } from './__components/canvas-content' import { ArtboardHeader } from './__components/header.artboard' import { SidebarLeft, SidebarRight } from './__components/sidebars' +import { artboardLoaderRoute } from './route' export const artboardVersionLoaderRoute = 'routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug' @@ -77,6 +85,30 @@ export default function SketchProjectArtboardBranchVersionRoute() { ) } +export const meta: MetaFunction = ({ params, matches }) => { + const projectData = routeLoaderMetaData(matches, projectLoaderRoute) + const projectName = projectData?.project.name ?? params.projectSlug + + const artboardData = routeLoaderMetaData(matches, artboardLoaderRoute) + const artboardName = artboardData?.artboard.name ?? params.artboardSlug + + const branchData = routeLoaderMetaData(matches, artboardBranchLoaderRoute) + const branchName = branchData?.branch.name ?? params.branchSlug + + const versionData = routeLoaderMetaData(matches, artboardVersionLoaderRoute) + const versionName = versionData?.version.name ?? params.versionSlug + + return [ + { + title: `${artboardName} | ${branchName} | ${versionName} | ${projectName} | Sketchy | XYZ`, + }, + { + name: 'description', + content: `Sketchy dashboard artboard project: ${artboardName} (${projectName})`, + }, + ] +} + export function ErrorBoundary() { return ( = ({ params, matches }) => { + const projectData = routeLoaderMetaData(matches, projectLoaderRoute) + const projectName = projectData?.project.name ?? params.projectSlug + + const artboardData = routeLoaderMetaData(matches, artboardLoaderRoute) + const artboardName = artboardData?.artboard.name ?? params.artboardSlug + + const branchData = routeLoaderMetaData(matches, artboardBranchLoaderRoute) + const branchName = branchData?.branch.name ?? params.branchSlug + return [ + { + title: `${artboardName} | ${branchName} | ${projectName} | Sketchy | XYZ`, + }, + { + name: 'description', + content: `Sketchy dashboard artboard project: ${artboardName} (${projectName})`, + }, + ] +} + export function ErrorBoundary() { return ( = ({ params, matches }) => { + const projectData = routeLoaderMetaData(matches, projectLoaderRoute) + const projectName = projectData?.project.name ?? params.projectSlug + + const artboardData = routeLoaderMetaData(matches, artboardLoaderRoute) + const artboardName = artboardData?.artboard.name ?? params.artboardSlug + return [ + { title: `${artboardName} | ${projectName} | Sketchy | XYZ` }, + { + name: 'description', + content: `Sketchy dashboard artboard project: ${artboardName} (${projectName})`, + }, + ] +} + export function ErrorBoundary() { return ( Date: Wed, 22 May 2024 02:04:48 -0400 Subject: [PATCH 2/4] no longer sketchy --- app/routes/sketch+/components/header.tsx | 2 +- .../artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx | 4 ++-- .../$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.tsx | 4 ++-- .../$projectSlug_+/artboards+/$artboardSlug+/route.tsx | 4 ++-- .../sketch+/projects+/$projectSlug_+/artboards+/route.tsx | 4 ++-- app/routes/sketch+/projects+/$projectSlug_+/route.tsx | 4 ++-- app/routes/sketch+/projects+/route.tsx | 4 ++-- app/routes/sketch+/route.tsx | 4 ++-- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/routes/sketch+/components/header.tsx b/app/routes/sketch+/components/header.tsx index bfb1d5ed..3c9bf2bc 100644 --- a/app/routes/sketch+/components/header.tsx +++ b/app/routes/sketch+/components/header.tsx @@ -11,7 +11,7 @@ export const Header = () => { - Sketchy + Sketch diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx index 63e47c8c..103a45ed 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx @@ -100,11 +100,11 @@ export const meta: MetaFunction = ({ params, matches }) => { return [ { - title: `${artboardName} | ${branchName} | ${versionName} | ${projectName} | Sketchy | XYZ`, + title: `${artboardName} | ${branchName} | ${versionName} | ${projectName} | Sketch | XYZ`, }, { name: 'description', - content: `Sketchy dashboard artboard project: ${artboardName} (${projectName})`, + content: `Sketch dashboard for XYZ artboard project: ${artboardName} (${projectName})`, }, ] } diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.tsx index 44600ea8..1f9d02b6 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.tsx @@ -48,11 +48,11 @@ export const meta: MetaFunction = ({ params, matches }) => { const branchName = branchData?.branch.name ?? params.branchSlug return [ { - title: `${artboardName} | ${branchName} | ${projectName} | Sketchy | XYZ`, + title: `${artboardName} | ${branchName} | ${projectName} | Sketch | XYZ`, }, { name: 'description', - content: `Sketchy dashboard artboard project: ${artboardName} (${projectName})`, + content: `Sketch dashboard for XYZ artboard project: ${artboardName} (${projectName})`, }, ] } diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/route.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/route.tsx index 439674e9..20f1cd8b 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/route.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/route.tsx @@ -49,10 +49,10 @@ export const meta: MetaFunction = ({ params, matches }) => { const artboardData = routeLoaderMetaData(matches, artboardLoaderRoute) const artboardName = artboardData?.artboard.name ?? params.artboardSlug return [ - { title: `${artboardName} | ${projectName} | Sketchy | XYZ` }, + { title: `${artboardName} | ${projectName} | Sketch | XYZ` }, { name: 'description', - content: `Sketchy dashboard artboard project: ${artboardName} (${projectName})`, + content: `Sketch dashboard for artboard project: ${artboardName} (${projectName})`, }, ] } diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/route.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/route.tsx index 099b4afb..625c9fbf 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/route.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/route.tsx @@ -35,10 +35,10 @@ export const meta: MetaFunction = ({ params, matches }) => { const projectData = routeLoaderMetaData(matches, projectLoaderRoute) const projectName = projectData?.project.name ?? params.slug return [ - { title: `Artboards | ${projectName} | Sketchy | XYZ` }, + { title: `Artboards | ${projectName} | Sketch | XYZ` }, { name: 'description', - content: `Sketchy dashboard artboards for Project: ${projectName}`, + content: `Sketch dashboard for XYZ project artboards: ${projectName}`, }, ] } diff --git a/app/routes/sketch+/projects+/$projectSlug_+/route.tsx b/app/routes/sketch+/projects+/$projectSlug_+/route.tsx index 9c43e689..c3dea452 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/route.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/route.tsx @@ -36,10 +36,10 @@ export const meta: MetaFunction = ({ params, matches }) => { const projectData = routeLoaderMetaData(matches, projectLoaderRoute) const projectName = projectData?.project.name ?? params.slug return [ - { title: `${projectName} | Sketchy | XYZ` }, + { title: `${projectName} | Sketch | XYZ` }, { name: 'description', - content: `Sketchy dashboard for Project: ${projectName}`, + content: `Sketch dashboard for XYZ project: ${projectName}`, }, ] } diff --git a/app/routes/sketch+/projects+/route.tsx b/app/routes/sketch+/projects+/route.tsx index b262ee3f..0f0d5033 100644 --- a/app/routes/sketch+/projects+/route.tsx +++ b/app/routes/sketch+/projects+/route.tsx @@ -49,10 +49,10 @@ export default function SketchProjectsRoute() { export const meta: MetaFunction = () => { return [ - { title: 'Projects | Sketchy | XYZ' }, + { title: 'Projects | Sketch | XYZ' }, { name: 'description', - content: 'Sketchy dashboard for XYZ - Projects', + content: 'Sketch dashboard for XYZ - Projects', }, ] } diff --git a/app/routes/sketch+/route.tsx b/app/routes/sketch+/route.tsx index 1b3bd74d..4bea7f19 100644 --- a/app/routes/sketch+/route.tsx +++ b/app/routes/sketch+/route.tsx @@ -25,10 +25,10 @@ export default function SketchRoute() { export const meta: MetaFunction = () => { return [ - { title: 'Sketchy | XYZ' }, + { title: 'Sketch | XYZ' }, { name: 'description', - content: 'Sketchy dashboard for XYZ', + content: 'Sketch dashboard for XYZ', }, ] } From 2e60c6cef6d2444413626c056815fb172fc508ca Mon Sep 17 00:00:00 2001 From: Pat Needham Date: Wed, 22 May 2024 02:07:37 -0400 Subject: [PATCH 3/4] removed logs --- .../artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx | 3 --- .../artboards+/$artboardSlug+/$branchSlug._index.tsx | 1 - .../$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.tsx | 1 - .../$projectSlug_+/artboards+/$artboardSlug+/_index.tsx | 1 - .../$projectSlug_+/artboards+/$artboardSlug+/route.tsx | 1 - .../sketch+/projects+/$projectSlug_+/artboards+/index.tsx | 1 - .../sketch+/projects+/$projectSlug_+/artboards+/route.tsx | 1 - app/routes/sketch+/projects+/$projectSlug_+/index.tsx | 2 +- app/routes/sketch+/projects+/$projectSlug_+/route.tsx | 1 - app/routes/sketch+/projects+/route.tsx | 1 - app/routes/sketch+/route.tsx | 1 - 11 files changed, 1 insertion(+), 13 deletions(-) diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx index 103a45ed..2b5d6878 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug.tsx @@ -29,7 +29,6 @@ import { artboardLoaderRoute } from './route' export const artboardVersionLoaderRoute = 'routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.$versionSlug' export async function loader({ params, request }: LoaderFunctionArgs) { - console.log('sketch+ projects slug artboards slug branch version route') const userId = await requireUserId(request) const owner = await getUserBasic({ where: { id: userId } }) invariantResponse(owner, 'Owner not found', { status: 404 }) @@ -65,8 +64,6 @@ export default function SketchProjectArtboardBranchVersionRoute() { const data = useLoaderData() const { version, selectedLayer, generator } = data - console.log('reloaded') - // had to consider sidebar from project route level // the component names might need re-thinking, but works return ( diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug._index.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug._index.tsx index d05a084a..93c69da1 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug._index.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug._index.tsx @@ -8,7 +8,6 @@ import { requireUserId } from '#app/utils/auth.server' export const artboardBranchLoaderRoute = 'routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug_+/$branchSlug_+/route' export async function loader({ params, request }: LoaderFunctionArgs) { - console.log('sketch+ projects slug artboards slug branch index route') const userId = await requireUserId(request) const owner = await getUserBasic({ where: { id: userId } }) invariantResponse(owner, 'Owner not found', { status: 404 }) diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.tsx index 1f9d02b6..7941189d 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug.tsx @@ -16,7 +16,6 @@ import { artboardLoaderRoute } from './route' export const artboardBranchLoaderRoute = 'routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/$branchSlug' export async function loader({ params, request }: LoaderFunctionArgs) { - console.log('sketch+ projects slug artboards slug branch route') const userId = await requireUserId(request) const owner = await getUserBasic({ where: { id: userId } }) invariantResponse(owner, 'Owner not found', { status: 404 }) diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/_index.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/_index.tsx index b842e061..53db3f4e 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/_index.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/_index.tsx @@ -6,7 +6,6 @@ import { getUserBasic } from '#app/models/user/user.get.server' import { requireUserId } from '#app/utils/auth.server' export async function loader({ params, request }: LoaderFunctionArgs) { - console.log('sketch+ projects slug artboards slug index route') const userId = await requireUserId(request) const owner = await getUserBasic({ where: { id: userId } }) invariantResponse(owner, 'Owner not found', { status: 404 }) diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/route.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/route.tsx index 20f1cd8b..2787b7cc 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/route.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/route.tsx @@ -26,7 +26,6 @@ import { projectLoaderRoute } from '../route' export const artboardLoaderRoute = 'routes/sketch+/projects+/$projectSlug_+/artboards+/$artboardSlug+/route' export async function loader({ params, request }: LoaderFunctionArgs) { - console.log('sketch+ projects slug artboards slug route') const userId = await requireUserId(request) const owner = await getUserBasic({ where: { id: userId } }) invariantResponse(owner, 'Owner not found', { status: 404 }) diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/index.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/index.tsx index fa9cc620..5a5abeb6 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/index.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/index.tsx @@ -14,7 +14,6 @@ import { useUser } from '#app/utils/user' export const artboardstLoaderRoute = 'routes/sketch+/projects+/$projectSlug_+/artboards+/route' export async function loader({ params, request }: LoaderFunctionArgs) { - console.log('sketch+ projects slug artboards index route') const userId = await requireUserId(request) const owner = await getUserBasic({ where: { id: userId } }) invariantResponse(owner, 'Owner not found', { status: 404 }) diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/route.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/route.tsx index 625c9fbf..8cc5b250 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/route.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/route.tsx @@ -13,7 +13,6 @@ import { routeLoaderMetaData } from '#app/utils/matches' export const projectLoaderRoute = 'routes/sketch+/projects+/$projectSlug_+/route' export async function loader({ params, request }: LoaderFunctionArgs) { - console.log('sketch+ projects slug artboards route') const userId = await requireUserId(request) const owner = await getUserBasic({ where: { id: userId } }) invariantResponse(owner, 'Owner not found', { status: 404 }) diff --git a/app/routes/sketch+/projects+/$projectSlug_+/index.tsx b/app/routes/sketch+/projects+/$projectSlug_+/index.tsx index 93fd99c9..7b167189 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/index.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/index.tsx @@ -15,7 +15,7 @@ export default function SketchProjectIndexRoute() { return (
- {project.name}! + {project.name} Artboards diff --git a/app/routes/sketch+/projects+/$projectSlug_+/route.tsx b/app/routes/sketch+/projects+/$projectSlug_+/route.tsx index c3dea452..8e985fd7 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/route.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/route.tsx @@ -14,7 +14,6 @@ import { routeLoaderMetaData } from '#app/utils/matches' export const projectLoaderRoute = 'routes/sketch+/projects+/$projectSlug_+/route' export async function loader({ params, request }: LoaderFunctionArgs) { - console.log('sketch+ projects $slug route') const userId = await requireUserId(request) const owner = await getUserBasic({ where: { id: userId } }) invariantResponse(owner, 'Owner not found', { status: 404 }) diff --git a/app/routes/sketch+/projects+/route.tsx b/app/routes/sketch+/projects+/route.tsx index 0f0d5033..fba9da3c 100644 --- a/app/routes/sketch+/projects+/route.tsx +++ b/app/routes/sketch+/projects+/route.tsx @@ -17,7 +17,6 @@ import { ProjectsSidebar } from './components/projects-sidebar' export const projectsLoaderRoute = 'routes/sketch+/projects+/route' export async function loader({ request }: LoaderFunctionArgs) { - console.log('sketch+ projects route') const userId = await requireUserId(request) const owner = await getUserBasic({ where: { id: userId } }) invariantResponse(owner, 'Owner not found', { status: 404 }) diff --git a/app/routes/sketch+/route.tsx b/app/routes/sketch+/route.tsx index 4bea7f19..c7ff1dee 100644 --- a/app/routes/sketch+/route.tsx +++ b/app/routes/sketch+/route.tsx @@ -9,7 +9,6 @@ import { requireUserId } from '#app/utils/auth.server' import { Header } from './components/header' export async function loader({ request }: LoaderFunctionArgs) { - console.log('sketch+ route') await requireUserId(request) return json({}) } From aa97926fa58b39c287569909cd331fd49e3a3d71 Mon Sep 17 00:00:00 2001 From: Pat Needham Date: Wed, 22 May 2024 02:12:28 -0400 Subject: [PATCH 4/4] fixed project slug link bug --- .../sketch+/projects+/$projectSlug_+/artboards+/index.tsx | 6 +++--- app/routes/sketch+/projects+/$projectSlug_+/index.tsx | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/index.tsx b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/index.tsx index 5a5abeb6..3faa75e7 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/artboards+/index.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/artboards+/index.tsx @@ -38,7 +38,7 @@ export default function SketchProjectArtboardsIndexRoute() { Artboards @@ -47,9 +47,9 @@ export default function SketchProjectArtboardsIndexRoute() { entities={project.artboards} type="Artboard" parent={project.name} - basePathNew={`/users/${user.username}/projects/${project.name}/artboards`} + basePathNew={`/users/${user.username}/projects/${project.slug}/artboards`} basePathEditor={`/users/${user.username}/artboards`} - basePathView={`/sketch/projects/${project.name}/artboards`} + basePathView={`/sketch/projects/${project.slug}/artboards`} />
) diff --git a/app/routes/sketch+/projects+/$projectSlug_+/index.tsx b/app/routes/sketch+/projects+/$projectSlug_+/index.tsx index 7b167189..7ca40323 100644 --- a/app/routes/sketch+/projects+/$projectSlug_+/index.tsx +++ b/app/routes/sketch+/projects+/$projectSlug_+/index.tsx @@ -25,7 +25,7 @@ export default function SketchProjectIndexRoute() { entities={project.artboards} type="Artboard" parent={project.name} - basePathNew={`/users/${user.username}/projects/${project.name}/artboards`} + basePathNew={`/users/${user.username}/projects/${project.slug}/artboards`} basePathEditor={`/users/${user.username}/artboards`} basePathView="artboards" />