From aa5d24b9e49762bf882ed0c8cc470a8959767b7c Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 3 Oct 2023 15:09:25 -0700 Subject: [PATCH] Support notification re deprecated repo --- .github/workflows/docker-publish.yml | 1 + Dockerfile | 3 ++- docs/more/homepage-move.md | 8 +++++++ src/pages/index.jsx | 32 ++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 docs/more/homepage-move.md diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 7f317ef63..52d8f867f 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -105,6 +105,7 @@ jobs: BUILDTIME=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }} + DEPRECATED_REPO=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.source'] == 'https://github.com/benphelps/homepage' }} # https://github.com/docker/setup-qemu-action#about # platforms: linux/amd64,linux/arm64,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6 platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 diff --git a/Dockerfile b/Dockerfile index 9fec35e70..5019171cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,6 +23,7 @@ WORKDIR /app ARG BUILDTIME ARG VERSION ARG REVISION +ARG DEPRECATED_REPO COPY --link --from=deps /app/node_modules ./node_modules/ COPY . . @@ -30,7 +31,7 @@ COPY . . SHELL ["/bin/ash", "-xeo", "pipefail", "-c"] RUN npm run telemetry \ && mkdir config \ - && NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION npm run build + && NEXT_PUBLIC_BUILDTIME=$BUILDTIME NEXT_PUBLIC_VERSION=$VERSION NEXT_PUBLIC_REVISION=$REVISION NEXT_PUBLIC_DEPRECATED_REPO=$DEPRECATED_REPO npm run build # Production image, copy all the files and run next FROM docker.io/node:18-alpine AS runner diff --git a/docs/more/homepage-move.md b/docs/more/homepage-move.md new file mode 100644 index 000000000..8d1498e87 --- /dev/null +++ b/docs/more/homepage-move.md @@ -0,0 +1,8 @@ +--- +title: Homepage Move +description: Homepage Container Deprecation +--- + +As of v0.7.1 homepage migrated from benphelps/homepage to an "orgnization" located at gethomepage/homepage. The reason for this is to setup the project for longevity and allow for community maintenance. + +Migrating your installation should be as simple as changing `image: ghcr.io/benphelps/homepage:latest` to `image: ghcr.io/gethomepage/homepage:latest`. \ No newline at end of file diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 9367e8b4d..0d9c6a7bf 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -27,6 +27,7 @@ import ErrorBoundary from "components/errorboundry"; import themes from "utils/styles/themes"; import QuickLaunch from "components/quicklaunch"; import { getStoredProvider, searchProviders } from "components/widgets/search/search"; +import ResolvedIcon from "components/resolvedicon"; const ThemeToggle = dynamic(() => import("components/toggles/theme"), { ssr: false, @@ -167,6 +168,17 @@ const headerStyles = { boxedWidgets: "m-6 mb-0 sm:m-9 sm:mb-0 sm:mt-1", }; +const deprecatedNotificationDismissedStorageKey = "deprecated-notification-dismissed"; + +const getNotificationDismissed = () => { + if (typeof window !== "undefined" && window.localStorage) { + const dismissed = window.localStorage.getItem(deprecatedNotificationDismissedStorageKey); + return dismissed; + } + + return false; +}; + function Home({ initialSettings }) { const { i18n } = useTranslation(); const { theme, setTheme } = useContext(ThemeContext); @@ -175,6 +187,9 @@ function Home({ initialSettings }) { const { activeTab, setActiveTab } = useContext(TabContext); const { asPath } = useRouter(); + const isDeprecatedRepo = process.env.NEXT_PUBLIC_DEPRECATED_REPO; + const [notificationDismissed, setNotificationDismissed] = useState(getNotificationDismissed); + useEffect(() => { setSettings(initialSettings); }, [initialSettings, setSettings]); @@ -420,6 +435,23 @@ function Home({ initialSettings }) {
+ {isDeprecatedRepo && !notificationDismissed && // outside version in case its hidden +
+ + + + + Homepage has moved! + + +
+ } {!settings.hideVersion && }