목록2024/11/15 (4)
juni
공통으로 사용되는 인증서 로직 분리import { useState, useEffect, useRef, useImperativeHandle } from "react";const useCertificateLogic = ({ ref, formData, onFileReady,}: { ref: any; formData: any; onFileReady?: (file: Blob) => void;}) => { const [symbolImage, setSymbolImage] = useState(null); const [signImage, setSignImage] = useState(null); const [width, setWidth] = useState(0); const refContainer = u..
뱃지 공통 로직 분리 예시import { useRef, useState, useEffect } from "react";import { toSvg } from "html-to-image";import { useCertificateContext } from "@/lib/provider/CertificateProvider";import { use} from "@/lib/provider/Provider";import { DEFAULT_IMAGE_URL } from "@/lib/constants";export const useBadgeLogic = ({ formData, onFileReady,}: { formData?: any; onFileReady?: (file: Blob) => void;}) => { ..

app디렉토리 하위에 ...slug를 이용하여 /main/~~~ 하위 404페이지 연결 예시📦[...slug] ┗ 📜page.tsximport { notFound } from "next/navigation";export default function Catch404Page() { notFound(); // 모든 잘못된 하위 경로에서 404 페이지 호출 return null;} not-found.tsx 예시"use client";import NavHeaderNotFound from "@/components/navigation/NavHeaderNotFound";import { Button } from "@/components/ui/button";import Image from "next/image"..

Footer 코드 예시export default function Footer() { const router = useRouter(); const snsLogos = { youtube: "/icons/sns/youtube.png", facebook: "/icons/sns/facebook.png", instagram: "/icons/sns/instagram.png", twitter: "/icons/sns/twitter.png", telegram: "/icons/sns/telegram.png", discord: "/icons/sns/discord.png", kakao: "/icons/sns/kakao.png", linkedin: "/icons/sns/linkedi..