refactor(logo-provider): moved SessionProviderLogo to a dedicated llm-logo-provider folder and updated imports

This commit is contained in:
Haileyesus
2026-02-18 13:27:25 +03:00
parent 23457365cf
commit 233a16b64e
12 changed files with 29 additions and 19 deletions

View File

@@ -1,8 +1,6 @@
import React, { useState, useEffect, useRef } from 'react'; import React, { useState, useEffect, useRef } from 'react';
import { ChevronRight, ChevronLeft, Check, GitBranch, User, Mail, LogIn, ExternalLink, Loader2 } from 'lucide-react'; import { ChevronRight, ChevronLeft, Check, GitBranch, User, Mail, LogIn, ExternalLink, Loader2 } from 'lucide-react';
import ClaudeLogo from './ClaudeLogo'; import SessionProviderLogo from './llm-logo-provider/SessionProviderLogo';
import CursorLogo from './CursorLogo';
import CodexLogo from './CodexLogo';
import LoginModal from './LoginModal'; import LoginModal from './LoginModal';
import { authenticatedFetch } from '../utils/api'; import { authenticatedFetch } from '../utils/api';
import { useAuth } from '../contexts/AuthContext'; import { useAuth } from '../contexts/AuthContext';
@@ -347,7 +345,7 @@ const Onboarding = ({ onComplete }) => {
<div className="flex items-center justify-between"> <div className="flex items-center justify-between">
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
<div className="w-10 h-10 bg-blue-100 dark:bg-blue-900/30 rounded-full flex items-center justify-center"> <div className="w-10 h-10 bg-blue-100 dark:bg-blue-900/30 rounded-full flex items-center justify-center">
<ClaudeLogo size={20} /> <SessionProviderLogo provider="claude" className="w-5 h-5" />
</div> </div>
<div> <div>
<div className="font-medium text-foreground flex items-center gap-2"> <div className="font-medium text-foreground flex items-center gap-2">
@@ -380,7 +378,7 @@ const Onboarding = ({ onComplete }) => {
<div className="flex items-center justify-between"> <div className="flex items-center justify-between">
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
<div className="w-10 h-10 bg-purple-100 dark:bg-purple-900/30 rounded-full flex items-center justify-center"> <div className="w-10 h-10 bg-purple-100 dark:bg-purple-900/30 rounded-full flex items-center justify-center">
<CursorLogo size={20} /> <SessionProviderLogo provider="cursor" className="w-5 h-5" />
</div> </div>
<div> <div>
<div className="font-medium text-foreground flex items-center gap-2"> <div className="font-medium text-foreground flex items-center gap-2">
@@ -413,7 +411,7 @@ const Onboarding = ({ onComplete }) => {
<div className="flex items-center justify-between"> <div className="flex items-center justify-between">
<div className="flex items-center gap-3"> <div className="flex items-center gap-3">
<div className="w-10 h-10 bg-gray-100 dark:bg-gray-800 rounded-full flex items-center justify-center"> <div className="w-10 h-10 bg-gray-100 dark:bg-gray-800 rounded-full flex items-center justify-center">
<CodexLogo className="w-5 h-5" /> <SessionProviderLogo provider="codex" className="w-5 h-5" />
</div> </div>
<div> <div>
<div className="font-medium text-foreground flex items-center gap-2"> <div className="font-medium text-foreground flex items-center gap-2">

View File

@@ -1,5 +1,5 @@
import { SessionProvider } from '../../../../types/app'; import { SessionProvider } from '../../../../types/app';
import SessionProviderLogo from '../../../SessionProviderLogo'; import SessionProviderLogo from '../../../llm-logo-provider/SessionProviderLogo';
import type { Provider } from '../../types/types'; import type { Provider } from '../../types/types';
type AssistantThinkingIndicatorProps = { type AssistantThinkingIndicatorProps = {

View File

@@ -1,6 +1,6 @@
import React, { memo, useMemo } from 'react'; import React, { memo, useMemo } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import SessionProviderLogo from '../../../SessionProviderLogo'; import SessionProviderLogo from '../../../llm-logo-provider/SessionProviderLogo';
import type { import type {
ChatMessage, ChatMessage,
ClaudePermissionSuggestion, ClaudePermissionSuggestion,

View File

@@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import { Check, ChevronDown } from 'lucide-react'; import { Check, ChevronDown } from 'lucide-react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import SessionProviderLogo from '../../../SessionProviderLogo'; import SessionProviderLogo from '../../../llm-logo-provider/SessionProviderLogo';
import NextTaskBanner from '../../../NextTaskBanner.jsx'; import NextTaskBanner from '../../../NextTaskBanner.jsx';
import { CLAUDE_MODELS, CURSOR_MODELS, CODEX_MODELS } from '../../../../../shared/modelConstants'; import { CLAUDE_MODELS, CURSOR_MODELS, CODEX_MODELS } from '../../../../../shared/modelConstants';
import type { ProjectSession, SessionProvider } from '../../../../types/app'; import type { ProjectSession, SessionProvider } from '../../../../types/app';

View File

@@ -1,6 +1,10 @@
import React from 'react'; import React from 'react';
const ClaudeLogo = ({className = 'w-5 h-5'}) => { type ClaudeLogoProps = {
className?: string;
};
const ClaudeLogo = ({ className = 'w-5 h-5' }: ClaudeLogoProps) => {
return ( return (
<img src="/icons/claude-ai-icon.svg" alt="Claude" className={className} /> <img src="/icons/claude-ai-icon.svg" alt="Claude" className={className} />
); );

View File

@@ -1,7 +1,11 @@
import React from 'react'; import React from 'react';
import { useTheme } from '../contexts/ThemeContext'; import { useTheme } from '../../contexts/ThemeContext';
const CodexLogo = ({ className = 'w-5 h-5' }) => { type CodexLogoProps = {
className?: string;
};
const CodexLogo = ({ className = 'w-5 h-5' }: CodexLogoProps) => {
const { isDarkMode } = useTheme(); const { isDarkMode } = useTheme();
return ( return (

View File

@@ -1,7 +1,11 @@
import React from 'react'; import React from 'react';
import { useTheme } from '../contexts/ThemeContext'; import { useTheme } from '../../contexts/ThemeContext';
const CursorLogo = ({ className = 'w-5 h-5' }) => { type CursorLogoProps = {
className?: string;
};
const CursorLogo = ({ className = 'w-5 h-5' }: CursorLogoProps) => {
const { isDarkMode } = useTheme(); const { isDarkMode } = useTheme();
return ( return (

View File

@@ -1,4 +1,4 @@
import type { SessionProvider } from '../types/app'; import type { SessionProvider } from '../../types/app';
import ClaudeLogo from './ClaudeLogo'; import ClaudeLogo from './ClaudeLogo';
import CodexLogo from './CodexLogo'; import CodexLogo from './CodexLogo';
import CursorLogo from './CursorLogo'; import CursorLogo from './CursorLogo';

View File

@@ -1,5 +1,5 @@
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import SessionProviderLogo from '../../../SessionProviderLogo'; import SessionProviderLogo from '../../../llm-logo-provider/SessionProviderLogo';
import type { AppTab, Project, ProjectSession } from '../../../../types/app'; import type { AppTab, Project, ProjectSession } from '../../../../types/app';
type MainContentTitleProps = { type MainContentTitleProps = {

View File

@@ -1,5 +1,5 @@
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import SessionProviderLogo from '../../../../SessionProviderLogo'; import SessionProviderLogo from '../../../../llm-logo-provider/SessionProviderLogo';
import type { AgentProvider, AuthStatus } from '../../../types/types'; import type { AgentProvider, AuthStatus } from '../../../types/types';
type AgentListItemProps = { type AgentListItemProps = {

View File

@@ -2,7 +2,7 @@ import { LogIn } from 'lucide-react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { Badge } from '../../../../../../ui/badge'; import { Badge } from '../../../../../../ui/badge';
import { Button } from '../../../../../../ui/button'; import { Button } from '../../../../../../ui/button';
import SessionProviderLogo from '../../../../../../SessionProviderLogo'; import SessionProviderLogo from '../../../../../../llm-logo-provider/SessionProviderLogo';
import type { AgentProvider, AuthStatus } from '../../../../../types/types'; import type { AgentProvider, AuthStatus } from '../../../../../types/types';
type AccountContentProps = { type AccountContentProps = {

View File

@@ -7,7 +7,7 @@ import { formatTimeAgo } from '../../../../utils/dateUtils';
import type { Project, ProjectSession, SessionProvider } from '../../../../types/app'; import type { Project, ProjectSession, SessionProvider } from '../../../../types/app';
import type { SessionWithProvider, TouchHandlerFactory } from '../../types/types'; import type { SessionWithProvider, TouchHandlerFactory } from '../../types/types';
import { createSessionViewModel } from '../../utils/utils'; import { createSessionViewModel } from '../../utils/utils';
import SessionProviderLogo from '../../../SessionProviderLogo'; import SessionProviderLogo from '../../../llm-logo-provider/SessionProviderLogo';
type SidebarSessionItemProps = { type SidebarSessionItemProps = {
project: Project; project: Project;