From 574f83615ef7de2eedc8a4de9706428191d37232 Mon Sep 17 00:00:00 2001 From: Varun Raj Date: Sat, 7 Sep 2024 20:24:18 +0530 Subject: [PATCH] feat: added version Signed-off-by: Varun Raj --- next.config.mjs | 12 +++++++++++- src/components/shared/ProfileInfo.tsx | 7 +++++-- src/config/environment.ts | 1 + src/contexts/ConfigContext.tsx | 2 ++ src/pages/_app.tsx | 8 ++++---- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/next.config.mjs b/next.config.mjs index 9685eaf..00835c9 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,10 +1,20 @@ /** @type {import('next').NextConfig} */ + +import { readFileSync } from 'fs'; + +const { version } = JSON.parse(readFileSync('./package.json', 'utf-8')); + +console.log(`Version: ${version}`); + const nextConfig = { reactStrictMode: false, output: 'standalone', images: { unoptimized: true, - } + }, + env: { + VERSION: version, + }, }; export default nextConfig; diff --git a/src/components/shared/ProfileInfo.tsx b/src/components/shared/ProfileInfo.tsx index d7036c3..c6c8617 100644 --- a/src/components/shared/ProfileInfo.tsx +++ b/src/components/shared/ProfileInfo.tsx @@ -8,7 +8,7 @@ import { useToast } from "../ui/use-toast"; export default function ProfileInfo() { const { updateContext, ...user } = useCurrentUser() - const { immichURL, exImmichUrl } = useConfig(); + const { immichURL, exImmichUrl, version } = useConfig(); const toast = useToast(); const handleLogout = () => logoutUser() @@ -44,7 +44,7 @@ export default function ProfileInfo() { )} -
+

Made with ♥ by{" "}

+ + v{version} +
); diff --git a/src/config/environment.ts b/src/config/environment.ts index 7a5945d..08dc3b2 100644 --- a/src/config/environment.ts +++ b/src/config/environment.ts @@ -5,6 +5,7 @@ export const ENV = { DATABASE_URL: (process.env.DATABASE_URL || `postgresql://${process.env.DB_USERNAME}:${process.env.DB_PASSWORD}@${(process.env.DB_HOST || 'immich_postgres')}:${(process.env.DB_PORT || '5432')}/${process.env.DB_DATABASE_NAME}`), JWT_SECRET: process.env.JWT_SECRET as string, SECURE_COOKIE: process.env.SECURE_COOKIE === 'true', + VERSION: process.env.VERSION }; diff --git a/src/contexts/ConfigContext.tsx b/src/contexts/ConfigContext.tsx index 9c742cf..af5b2f8 100644 --- a/src/contexts/ConfigContext.tsx +++ b/src/contexts/ConfigContext.tsx @@ -3,11 +3,13 @@ import { createContext, useContext } from "react"; interface ConfigContextType { immichURL: string; exImmichUrl: string; + version?: string; } const ConfigContext = createContext({ immichURL: "", exImmichUrl: "", + version: "", }); export default ConfigContext; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index d3eaa84..802034b 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -4,14 +4,12 @@ import type { AppProps } from "next/app"; import { ThemeProvider } from "next-themes"; import { ENV } from "@/config/environment"; import ConfigContext from "@/contexts/ConfigContext"; -import { useEffect, useRef, useState } from "react"; -import { getMe } from "@/handlers/api/user.handler"; -import { db } from "@/config/db"; - +import { useRef } from "react"; interface AppPropsWithProps extends AppProps { props: { immichURL: string; exImmichUrl: string; + version?: string; }; } const App = ({ Component, pageProps, ...props }: AppPropsWithProps) => { @@ -29,10 +27,12 @@ const App = ({ Component, pageProps, ...props }: AppPropsWithProps) => { }; App.getInitialProps = async () => { + return { props: { exImmichUrl: ENV.EXTERNAL_IMMICH_URL, immichURL: ENV.IMMICH_URL, + version: ENV.VERSION }, }; };