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';