mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-06 16:31:12 +08:00
chore: move ccw-skill-hub to standalone repository
Migrated ccw-skill-hub to D:/ccw-skill-hub as independent git project. Removed nested git repos (ccw/frontend/ccw-skill-hub, skill-hub-repo, skill-hub-temp).
This commit is contained in:
@@ -20,7 +20,7 @@ import { Input } from '@/components/ui/Input';
|
||||
import { Button } from '@/components/ui/Button';
|
||||
import { Badge } from '@/components/ui/Badge';
|
||||
import { Tabs, TabsList, TabsTrigger } from '@/components/ui/Tabs';
|
||||
import { StatCard } from '@/components/shared';
|
||||
import { StatCard, SkillHubDetailPanel } from '@/components/shared';
|
||||
import { SkillHubCard } from '@/components/shared/SkillHubCard';
|
||||
import {
|
||||
useSkillHub,
|
||||
@@ -136,6 +136,8 @@ export function SkillHubPage() {
|
||||
const [activeTab, setActiveTab] = useState<TabValue>('remote');
|
||||
const [searchQuery, setSearchQuery] = useState('');
|
||||
const [categoryFilter, setCategoryFilter] = useState<string | null>(null);
|
||||
const [selectedSkill, setSelectedSkill] = useState<{ skill: RemoteSkill | LocalSkill; source: SkillSource } | null>(null);
|
||||
const [isDetailPanelOpen, setIsDetailPanelOpen] = useState(false);
|
||||
|
||||
// Fetch data
|
||||
const {
|
||||
@@ -221,8 +223,15 @@ export function SkillHubPage() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleViewDetails = () => {
|
||||
toast.info(formatMessage({ id: 'skillHub.details.comingSoon' }));
|
||||
const handleViewDetails = (skill: RemoteSkill | LocalSkill) => {
|
||||
const source: SkillSource = 'downloadUrl' in skill ? 'remote' : 'local';
|
||||
setSelectedSkill({ skill, source });
|
||||
setIsDetailPanelOpen(true);
|
||||
};
|
||||
|
||||
const handleCloseDetailPanel = () => {
|
||||
setIsDetailPanelOpen(false);
|
||||
setSelectedSkill(null);
|
||||
};
|
||||
|
||||
const handleRefresh = () => {
|
||||
@@ -378,7 +387,7 @@ export function SkillHubPage() {
|
||||
source={skillSource}
|
||||
onInstall={handleInstall}
|
||||
onUninstall={handleUninstall}
|
||||
onViewDetails={handleViewDetails}
|
||||
onViewDetails={() => handleViewDetails(skill as RemoteSkill | LocalSkill)}
|
||||
isInstalling={installMutation.isPending}
|
||||
/>
|
||||
);
|
||||
@@ -386,6 +395,20 @@ export function SkillHubPage() {
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Detail Panel */}
|
||||
{selectedSkill && (
|
||||
<SkillHubDetailPanel
|
||||
skill={selectedSkill.skill}
|
||||
isOpen={isDetailPanelOpen}
|
||||
onClose={handleCloseDetailPanel}
|
||||
source={selectedSkill.source}
|
||||
installedInfo={installedMap.get(selectedSkill.skill.id)}
|
||||
onInstall={handleInstall}
|
||||
onUninstall={handleUninstall}
|
||||
isInstalling={installMutation.isPending}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user