Skip to content

Commit

Permalink
💡 refactor(utilities): Improve code organization and imports
Browse files Browse the repository at this point in the history
Refactor the `utils.ts` file in NextJS to improve code organization and imports. This commit introduces a new function `cn` that utilizes clsx and tailwind-merge.
  • Loading branch information
koisose committed Aug 29, 2024
1 parent d5d787c commit 08b87ea
Show file tree
Hide file tree
Showing 12 changed files with 641 additions and 89 deletions.
36 changes: 36 additions & 0 deletions packages/nextjs/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env*.local

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
10 changes: 8 additions & 2 deletions packages/nextjs/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
/node_modules
/.pnp
.pnp.js
.yarn/install-state.gz

# testing
/coverage

# next.js
/.next/
/out/
.vercel

# production
/build
Expand All @@ -32,6 +32,12 @@ yarn-error.log*
.env.development.local
.env.test.local
.env.production.local
.env*.local
Dockerfile.dev

# vercel
.vercel

# typescript
*.tsbuildinfo
*.tsbuildinfo
next-env.d.ts
37 changes: 37 additions & 0 deletions packages/nextjs/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# docker/dev.Dockerfile
FROM node:22-alpine

WORKDIR /app/next-app

COPY package.json ./

RUN npm install --force

COPY . .
ENV NEYNAR=""
ENV QUIRREL_TOKEN=""
ENV QUIRREL_BASE_URL=""
ENV QUIRREL_ENCRYPTION_SECRET=""
ENV QUIRREL_API_URL=""
ENV MONGO=""
ENV BROWSERLESS=""
ENV MINIO_ENDPOINT=""
ENV MINIO_ACCESS_KEY=""
ENV MINIO_SECRET_KEY=""
ENV MINIO_URL=""
ENV SIGNER=""
ENV FID=""
ENV GROQ_API_KEY=""
# Next.js collects completely anonymous telemetry data about general usage. Learn more here: https://nextjs.org/telemetry
# Uncomment the following line to disable telemetry at run time
ENV NEXT_TELEMETRY_DISABLED 1

# for deploting the build version
EXPOSE 3000
RUN npm run build
# and
CMD npm run start

# OR for sart Next.js in development, comment above two lines and uncomment below line

# CMD bun run dev
17 changes: 17 additions & 0 deletions packages/nextjs/components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "default",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "tailwinds.config.js",
"css": "styles/shadcn.css",
"baseColor": "slate",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "~~/components",
"utils": "~~/lib/utils"
}
}
6 changes: 6 additions & 0 deletions packages/nextjs/lib/utils.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { type ClassValue, clsx } from "clsx";
import { twMerge } from "tailwind-merge";

export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
5 changes: 5 additions & 0 deletions packages/nextjs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,14 @@
"axios": "^1.7.5",
"blo": "~1.0.1",
"burner-connector": "~0.0.8",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"daisyui": "4.5.0",
"frog": "^0.17.0",
"groq-sdk": "^0.5.0",
"hono": "^4.5.9",
"ky": "^1.7.1",
"lucide-react": "^0.436.0",
"mongoose": "^8.5.4",
"next": "~14.0.4",
"next-themes": "~0.2.1",
Expand All @@ -37,6 +40,8 @@
"react-copy-to-clipboard": "~5.1.0",
"react-dom": "~18.2.0",
"react-hot-toast": "~2.4.0",
"tailwind-merge": "^2.5.2",
"tailwindcss-animate": "^1.0.7",
"use-debounce": "~8.0.4",
"usehooks-ts": "2.13.0",
"viem": "2.17.4",
Expand Down
90 changes: 90 additions & 0 deletions packages/nextjs/styles/combined.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
:root {
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;
--card: 0 0% 100%;
--card-foreground: 222.2 84% 4.9%;
--popover: 0 0% 100%;
--popover-foreground: 222.2 84% 4.9%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;
--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--ring: 222.2 84% 4.9%;
--radius: 0.5rem;
--chart-1: 12 76% 61%;
--chart-2: 173 58% 39%;
--chart-3: 197 37% 24%;
--chart-4: 43 74% 66%;
--chart-5: 27 87% 67%;
}

.dark {
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;
--card: 222.2 84% 4.9%;
--card-foreground: 210 40% 98%;
--popover: 222.2 84% 4.9%;
--popover-foreground: 210 40% 98%;
--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 11.2%;
--secondary: 217.2 32.6% 17.5%;
--secondary-foreground: 210 40% 98%;
--muted: 217.2 32.6% 17.5%;
--muted-foreground: 215 20.2% 65.1%;
--accent: 217.2 32.6% 17.5%;
--accent-foreground: 210 40% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 210 40% 98%;
--border: 217.2 32.6% 17.5%;
--input: 217.2 32.6% 17.5%;
--ring: 212.7 26.8% 83.9%;
--chart-1: 220 70% 50%;
--chart-2: 160 60% 45%;
--chart-3: 30 80% 55%;
--chart-4: 280 65% 60%;
--chart-5: 340 75% 55%;
}

* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
min-height: 100vh;
}

h1,
h2,
h3,
h4 {
margin-bottom: 0.5rem;
line-height: 1;
}

p {
margin: 1rem 0;
}
}

@layer components {
.btn {
@apply shadow-md;
}

.btn.btn-ghost {
@apply shadow-none;
}
}
69 changes: 69 additions & 0 deletions packages/nextjs/styles/shadcn.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
:root {
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;
--card: 0 0% 100%;
--card-foreground: 222.2 84% 4.9%;
--popover: 0 0% 100%;
--popover-foreground: 222.2 84% 4.9%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;
--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--ring: 222.2 84% 4.9%;
--radius: 0.5rem;
--chart-1: 12 76% 61%;
--chart-2: 173 58% 39%;
--chart-3: 197 37% 24%;
--chart-4: 43 74% 66%;
--chart-5: 27 87% 67%;
}

.dark {
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;
--card: 222.2 84% 4.9%;
--card-foreground: 210 40% 98%;
--popover: 222.2 84% 4.9%;
--popover-foreground: 210 40% 98%;
--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 11.2%;
--secondary: 217.2 32.6% 17.5%;
--secondary-foreground: 210 40% 98%;
--muted: 217.2 32.6% 17.5%;
--muted-foreground: 215 20.2% 65.1%;
--accent: 217.2 32.6% 17.5%;
--accent-foreground: 210 40% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 210 40% 98%;
--border: 217.2 32.6% 17.5%;
--input: 217.2 32.6% 17.5%;
--ring: 212.7 26.8% 83.9%;
--chart-1: 220 70% 50%;
--chart-2: 160 60% 45%;
--chart-3: 30 80% 55%;
--chart-4: 280 65% 60%;
--chart-5: 340 75% 55%;
}
}

@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}
Loading

0 comments on commit 08b87ea

Please sign in to comment.