From e52d7a05c2868f5e632774c0d837f05a8065d7cb Mon Sep 17 00:00:00 2001 From: Kent Keirsey <31807370+hipsterusername@users.noreply.github.com> Date: Mon, 7 Jul 2025 12:50:36 -0400 Subject: [PATCH] Update support links. --- invokeai/frontend/web/public/locales/en.json | 2 +- .../components/VideosModal/VideoCard.tsx | 7 +----- .../components/VideosModal/VideosModal.tsx | 24 ++++++++++++++++--- .../system/components/VideosModal/data.ts | 7 +----- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/invokeai/frontend/web/public/locales/en.json b/invokeai/frontend/web/public/locales/en.json index 9af94fa945..583aa8cf82 100644 --- a/invokeai/frontend/web/public/locales/en.json +++ b/invokeai/frontend/web/public/locales/en.json @@ -2566,7 +2566,7 @@ "supportVideos": "Support Videos", "gettingStarted": "Getting Started", "watch": "Watch", - "studioSessionsDesc1": "Check out the for Invoke deep dives.", + "studioSessionsDesc1": "Check out our for basic tutorials, and the for deep dives into advanced Invoke use-cases and techniques.", "studioSessionsDesc2": "Join our to participate in the live sessions and ask questions. Sessions are uploaded to the playlist the following week.", "videos": { "gettingStarted": { diff --git a/invokeai/frontend/web/src/features/system/components/VideosModal/VideoCard.tsx b/invokeai/frontend/web/src/features/system/components/VideosModal/VideoCard.tsx index 32b5699e18..d97a0bed34 100644 --- a/invokeai/frontend/web/src/features/system/components/VideosModal/VideoCard.tsx +++ b/invokeai/frontend/web/src/features/system/components/VideosModal/VideoCard.tsx @@ -5,14 +5,10 @@ import { videoModalLinkClicked } from 'features/system/store/actions'; import { memo, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; -const formatTime = ({ minutes, seconds }: { minutes: number; seconds: number }) => { - return `${minutes}:${seconds.toString().padStart(2, '0')}`; -}; - export const VideoCard = memo(({ video }: { video: VideoData }) => { const { t } = useTranslation(); const dispatch = useAppDispatch(); - const { tKey, link, length } = video; + const { tKey, link } = video; const handleLinkClick = useCallback(() => { dispatch(videoModalLinkClicked(t(`supportVideos.videos.${tKey}.title`))); }, [dispatch, t, tKey]); @@ -24,7 +20,6 @@ export const VideoCard = memo(({ video }: { video: VideoData }) => { {t(`supportVideos.videos.${tKey}.title`)} - {formatTime(length)} diff --git a/invokeai/frontend/web/src/features/system/components/VideosModal/VideosModal.tsx b/invokeai/frontend/web/src/features/system/components/VideosModal/VideosModal.tsx index cf0c0fb81f..57b8b94dd8 100644 --- a/invokeai/frontend/web/src/features/system/components/VideosModal/VideosModal.tsx +++ b/invokeai/frontend/web/src/features/system/components/VideosModal/VideosModal.tsx @@ -13,7 +13,7 @@ import { import { useAppDispatch } from 'app/store/storeHooks'; import ScrollableContent from 'common/components/OverlayScrollbars/ScrollableContent'; import { buildUseDisclosure } from 'common/hooks/useBoolean'; -import { studioSessionsPlaylistLink, supportVideos } from 'features/system/components/VideosModal/data'; +import { gettingStartedPlaylistLink, studioSessionsPlaylistLink, supportVideos } from 'features/system/components/VideosModal/data'; import { VideoCardList } from 'features/system/components/VideosModal/VideoCardList'; import { videoModalLinkClicked } from 'features/system/store/actions'; import { discordLink } from 'features/system/store/constants'; @@ -22,10 +22,27 @@ import { Trans, useTranslation } from 'react-i18next'; export const [useVideosModal] = buildUseDisclosure(false); +const GettingStartedPlaylistLink = () => { + const dispatch = useAppDispatch(); + const handleLinkClick = useCallback(() => { + dispatch(videoModalLinkClicked('Getting Started playlist')); + }, [dispatch]); + + return ( + + ); +}; + const StudioSessionsPlaylistLink = () => { const dispatch = useAppDispatch(); const handleLinkClick = useCallback(() => { - dispatch(videoModalLinkClicked('Studio session playlist')); + dispatch(videoModalLinkClicked('Studio Sessions playlist')); }, [dispatch]); return ( @@ -57,6 +74,7 @@ const DiscordLink = () => { }; const components = { + GettingStartedPlaylistLink: , StudioSessionsPlaylistLink: , DiscordLink: , }; @@ -68,7 +86,7 @@ export const VideosModal = memo(() => { return ( - + {t('supportVideos.supportVideos')} diff --git a/invokeai/frontend/web/src/features/system/components/VideosModal/data.ts b/invokeai/frontend/web/src/features/system/components/VideosModal/data.ts index 107c7bd5a6..094f5d5245 100644 --- a/invokeai/frontend/web/src/features/system/components/VideosModal/data.ts +++ b/invokeai/frontend/web/src/features/system/components/VideosModal/data.ts @@ -8,23 +8,18 @@ export type VideoData = { tKey: string; link: string; - length: { - minutes: number; - seconds: number; - }; }; export const supportVideos: VideoData[] = [ { tKey: 'gettingStarted', link: 'https://www.youtube.com/watch?v=jVi2XgSGrfY&list=PLvWK1Kc8iXGrQy8r9TYg6QdUuJ5MMx-ZO&pp=gAQB0gcJCV8EOCosWNin', - length: { minutes: 0, seconds: 0 }, // Playlist doesn't have a single duration }, { tKey: 'studioSessions', link: 'https://www.youtube.com/watch?v=91ZgeeqL7Bo&list=PLvWK1Kc8iXGq_8tWZqnwDVaf9uhlDC09U&pp=gAQB', - length: { minutes: 0, seconds: 0 }, // Playlist doesn't have a single duration }, ]; +export const gettingStartedPlaylistLink = 'https://www.youtube.com/playlist?list=PLvWK1Kc8iXGrQy8r9TYg6QdUuJ5MMx-ZO'; export const studioSessionsPlaylistLink = 'https://www.youtube.com/playlist?list=PLvWK1Kc8iXGq_8tWZqnwDVaf9uhlDC09U';