feat: add template card page
This commit is contained in:
@@ -0,0 +1,18 @@
|
|||||||
|
import type { NextPageWithLayout } from "~/pages/_app";
|
||||||
|
import { getDashboardLayout } from "~/components/Dashboard";
|
||||||
|
import Popup from "~/components/Popup";
|
||||||
|
import CardView, { CardRightPanel } from "~/views/card";
|
||||||
|
|
||||||
|
const CardPage: NextPageWithLayout = () => {
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<CardView isTemplate />
|
||||||
|
<Popup />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
CardPage.getLayout = (page) =>
|
||||||
|
getDashboardLayout(page, <CardRightPanel isTemplate />, true);
|
||||||
|
|
||||||
|
export default CardPage;
|
||||||
@@ -39,7 +39,7 @@ import VisibilityButton from "./components/VisibilityButton";
|
|||||||
type PublicListId = string;
|
type PublicListId = string;
|
||||||
|
|
||||||
export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
|
export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
|
||||||
const params = useParams() as { boardId: string[] } | null;
|
const params = useParams() as { boardId: string | string[] } | null;
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const utils = api.useUtils();
|
const utils = api.useUtils();
|
||||||
const { showPopup } = usePopup();
|
const { showPopup } = usePopup();
|
||||||
@@ -49,7 +49,13 @@ export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
|
|||||||
useState<PublicListId>("");
|
useState<PublicListId>("");
|
||||||
const [isInitialLoading, setIsInitialLoading] = useState(true);
|
const [isInitialLoading, setIsInitialLoading] = useState(true);
|
||||||
|
|
||||||
const boardId = params?.boardId.length ? params.boardId[0] : null;
|
const boardId = params?.boardId
|
||||||
|
? Array.isArray(params.boardId)
|
||||||
|
? params.boardId[0]
|
||||||
|
: params.boardId
|
||||||
|
: null;
|
||||||
|
|
||||||
|
console.log("params", params);
|
||||||
|
|
||||||
const updateBoard = api.board.update.useMutation();
|
const updateBoard = api.board.update.useMutation();
|
||||||
|
|
||||||
@@ -497,7 +503,11 @@ export default function BoardPage({ isTemplate }: { isTemplate?: boolean }) {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}}
|
}}
|
||||||
key={card.publicId}
|
key={card.publicId}
|
||||||
href={`/cards/${card.publicId}`}
|
href={
|
||||||
|
isTemplate
|
||||||
|
? `/templates/${boardId}/cards/${card.publicId}`
|
||||||
|
: `/cards/${card.publicId}`
|
||||||
|
}
|
||||||
className={`mb-2 flex !cursor-pointer flex-col ${
|
className={`mb-2 flex !cursor-pointer flex-col ${
|
||||||
card.publicId.startsWith(
|
card.publicId.startsWith(
|
||||||
"PLACEHOLDER",
|
"PLACEHOLDER",
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ interface FormValues {
|
|||||||
description: string;
|
description: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function CardRightPanel() {
|
export function CardRightPanel({ isTemplate }: { isTemplate?: boolean }) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const cardId = Array.isArray(router.query.cardId)
|
const cardId = Array.isArray(router.query.cardId)
|
||||||
? router.query.cardId[0]
|
? router.query.cardId[0]
|
||||||
@@ -121,19 +121,21 @@ export function CardRightPanel() {
|
|||||||
isLoading={!card}
|
isLoading={!card}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex w-full flex-row">
|
{!isTemplate && (
|
||||||
<p className="my-2 mb-2 w-[100px] text-sm font-medium">{t`Members`}</p>
|
<div className="flex w-full flex-row">
|
||||||
<MemberSelector
|
<p className="my-2 mb-2 w-[100px] text-sm font-medium">{t`Members`}</p>
|
||||||
cardPublicId={cardId ?? ""}
|
<MemberSelector
|
||||||
members={formattedMembers}
|
cardPublicId={cardId ?? ""}
|
||||||
isLoading={!card}
|
members={formattedMembers}
|
||||||
/>
|
isLoading={!card}
|
||||||
</div>
|
/>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function CardPage() {
|
export default function CardPage({ isTemplate }: { isTemplate?: boolean }) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const utils = api.useUtils();
|
const utils = api.useUtils();
|
||||||
const {
|
const {
|
||||||
@@ -228,7 +230,7 @@ export default function CardPage() {
|
|||||||
<>
|
<>
|
||||||
<Link
|
<Link
|
||||||
className="whitespace-nowrap font-bold leading-[2.3rem] tracking-tight text-light-900 dark:text-dark-900 sm:text-[1.2rem]"
|
className="whitespace-nowrap font-bold leading-[2.3rem] tracking-tight text-light-900 dark:text-dark-900 sm:text-[1.2rem]"
|
||||||
href={`/boards/${board?.publicId}`}
|
href={`${isTemplate ? "/templates" : "/boards"}/${board?.publicId}`}
|
||||||
>
|
>
|
||||||
{board?.name}
|
{board?.name}
|
||||||
</Link>
|
</Link>
|
||||||
@@ -296,9 +298,11 @@ export default function CardPage() {
|
|||||||
isAdmin={workspace.role === "admin"}
|
isAdmin={workspace.role === "admin"}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="mt-6">
|
{!isTemplate && (
|
||||||
<NewCommentForm cardPublicId={cardId} />
|
<div className="mt-6">
|
||||||
</div>
|
<NewCommentForm cardPublicId={cardId} />
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user