From 7026cd8b01a13a47e99a67a3641e90f7ca1f77ad Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 31 Oct 2025 00:34:54 -0400 Subject: [PATCH] fix frontend to show grok login modal --- .../common/src/lib/enums/GenerationProvider.ts | 1 + .../src/lib/provider-setup-modal.tsx | 10 ++++++++-- .../libs/model-list/src/lib/lists/VideoModels.ts | 14 ++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/frontend/libs/common/src/lib/enums/GenerationProvider.ts b/frontend/libs/common/src/lib/enums/GenerationProvider.ts index e25d9f1a46..2bdd04368c 100644 --- a/frontend/libs/common/src/lib/enums/GenerationProvider.ts +++ b/frontend/libs/common/src/lib/enums/GenerationProvider.ts @@ -1,5 +1,6 @@ export enum GenerationProvider { Artcraft = "artcraft", + Grok = "grok", Fal = "fal", Midjourney = "midjourney", Sora = "sora", diff --git a/frontend/libs/components/provider-setup-modal/src/lib/provider-setup-modal.tsx b/frontend/libs/components/provider-setup-modal/src/lib/provider-setup-modal.tsx index b5c6cdf1ca..8585bf5431 100644 --- a/frontend/libs/components/provider-setup-modal/src/lib/provider-setup-modal.tsx +++ b/frontend/libs/components/provider-setup-modal/src/lib/provider-setup-modal.tsx @@ -31,6 +31,7 @@ export function ProviderSetupModal({ let modalDescription; switch (provider) { + case GenerationProvider.Grok: case GenerationProvider.Sora: modalDescription = `You can add your ${serviceProviderName} account to ArtCraft by simply logging in. Use can then use it directly within Artcraft. You can add all of your AI accounts to Artcraft to use them all in one place and build the ultimate AI art tool.`; break; @@ -43,6 +44,9 @@ export function ProviderSetupModal({ const buttonOnClick = async () => { switch (provider) { + case GenerationProvider.Grok: + await invoke("grok_open_login_command"); // TODO: Rename in Tauri + break; case GenerationProvider.Midjourney: await invoke("midjourney_open_login_command"); break; @@ -111,12 +115,14 @@ export function ProviderSetupModal({ function getServiceProviderName(provider: GenerationProvider) : string { switch (provider) { - case GenerationProvider.Sora: - return "Sora"; + case GenerationProvider.Grok: + return "Grok"; case GenerationProvider.Fal: return "Fal"; case GenerationProvider.Midjourney: return "Midjourney"; + case GenerationProvider.Sora: + return "Sora"; case GenerationProvider.Artcraft: default: return "Artcraft"; diff --git a/frontend/libs/model-list/src/lib/lists/VideoModels.ts b/frontend/libs/model-list/src/lib/lists/VideoModels.ts index c47bb588de..ed409c0f67 100644 --- a/frontend/libs/model-list/src/lib/lists/VideoModels.ts +++ b/frontend/libs/model-list/src/lib/lists/VideoModels.ts @@ -3,6 +3,20 @@ import { ModelCreator } from "../classes/metadata/ModelCreator.js"; import { SizeIconOption } from "../classes/metadata/SizeOption.js"; export const VIDEO_MODELS: VideoModel[] = [ + new VideoModel({ + id: "grok", + tauriId: "grok", + fullName: "Grok Video", + category: "video", + creator: ModelCreator.Kling, + selectorName: "Grok Video", + selectorDescription: "Fastest video model", + selectorBadges: ["20 sec."], + startFrame: true, + endFrame: false, + requiresImage: true, + progressBarTime: 50000, + }), new VideoModel({ id: "kling_1_6_pro", tauriId: "kling_1.6_pro",