From 2a37b3ccf3ff4a20ebd441497d9dd6b804acbd59 Mon Sep 17 00:00:00 2001 From: Josh Daniel Date: Sat, 11 May 2024 15:30:57 +0800 Subject: [PATCH 1/2] feat: implement analytics with posthog --- bun.lockb | Bin 186989 -> 177615 bytes package.json | 8 ++++---- src/app/layout.tsx | 19 +++++++++++-------- src/app/provider.tsx | 14 ++++++++++++++ 4 files changed, 29 insertions(+), 12 deletions(-) create mode 100644 src/app/provider.tsx diff --git a/bun.lockb b/bun.lockb index 5e3e079c9fe8a987c3b86d1b4e3876018f55a7ab..c3d7772a8a4e7a02d6ffe824122d0b35eff3031a 100755 GIT binary patch delta 30113 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 diff --git a/package.json b/package.json index ff95d38..e886e35 100644 --- a/package.json +++ b/package.json @@ -29,10 +29,10 @@ "next": "14.2.3", "next-themes": "^0.3.0", "nextjs-toploader": "^1.6.12", + "posthog-js": "^1.131.4", "react": "^18", "react-dom": "^18", "react-hook-form": "^7.51.4", - "sharp": "^0.33.3", "sonner": "^1.4.41", "tailwind-merge": "^2.3.0", "tailwindcss-animate": "^1.0.7", @@ -40,13 +40,13 @@ "zod": "^3.23.6" }, "devDependencies": { - "typescript": "^5", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", + "eslint": "^8", + "eslint-config-next": "14.2.0", "postcss": "^8", "tailwindcss": "^3.4.1", - "eslint": "^8", - "eslint-config-next": "14.2.0" + "typescript": "^5" } } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 01ddaa8..2a9a287 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -6,6 +6,7 @@ import { Toaster } from "@/components/ui/sonner"; import NextTopLoader from "nextjs-toploader"; import Navbar from "@/components/navbar"; import "./globals.css"; +import { CSPostHogProvider } from "./provider"; export const metadata: Metadata = { metadataBase: new URL("https://www.github-stats.omsimos.com"), @@ -34,14 +35,16 @@ export default function RootLayout({ }>) { return ( - - - - - - {children} - - + + + + + + + {children} + + + ); } diff --git a/src/app/provider.tsx b/src/app/provider.tsx new file mode 100644 index 0000000..7d5608e --- /dev/null +++ b/src/app/provider.tsx @@ -0,0 +1,14 @@ +"use client"; + +import posthog from "posthog-js"; +import { PostHogProvider } from "posthog-js/react"; + +if (typeof window !== "undefined") { + posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY!, { + api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST, + }); +} + +export function CSPostHogProvider({ children }: { children: React.ReactNode }) { + return {children}; +} From a56788e350db603d0477c3c09082fae36100caf6 Mon Sep 17 00:00:00 2001 From: Josh Daniel Date: Sat, 11 May 2024 15:39:10 +0800 Subject: [PATCH 2/2] feat: add ci --- .github/workflows/ci.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..7f1961d --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,29 @@ +name: CI + +on: + push: + branches: ["main", "dev"] + pull_request: + types: [opened, synchronize] + +jobs: + build: + name: Build + timeout-minutes: 15 + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v3 + with: + fetch-depth: 2 + + - uses: oven-sh/setup-bun@v1 + with: + bun-version: latest + + - name: Install dependencies + run: bun install + + - name: Build + run: bun run build