MCPcopy Create free account
hub / github.com/Claw-AI-Lab/Claw-AI-Lab / ProjectFolder

Function ProjectFolder

frontend/src/components/DataShelf.tsx:105–131  ·  view source on GitHub ↗
({ pid, files, locale }: { pid: string; files: Artifact[]; locale: string })

Source from the content-addressed store, hash-verified

103
104 return (
105 <div className="shelf-project">
106 <div className="shelf-project-name" onClick={() => setOpen(!open)}>
107 <span className="folder-icon">{open ? '📂' : '📁'}</span>
108 <span className="folder-name">{pid}</span>
109 <span className="shelf-count">{files.length}</span>
110 <span className={`folder-arrow ${open ? 'open' : ''}`}>▶</span>
111 </div>
112 {open && (
113 <div className="shelf-artifacts">
114 {stageGroups.map((g) => (
115 <div key={g.stage} className="stage-group">
116 <div className="stage-group-label">{g.stageName}</div>
117 {g.artifacts.map((a) => (
118 <ArtifactItem key={a.id} a={a} locale={locale} />
119 ))}
120 </div>
121 ))}
122 </div>
123 )}
124 </div>
125 );
126}
127
128export default memo(function DataShelf({ repoId, artifacts }: Props) {
129 const [open, setOpen] = useState(false);
130 const { t, locale } = useLocale();
131 const meta = REPO_META[repoId];
132 const fromColor = LAYER_META[meta.fromLayer].color;
133 const repoName = t(`repo.${repoId}.name`);
134 const repoDesc = t(`repo.${repoId}.desc`);

Callers

nothing calls this directly

Calls 1

groupByStageFunction · 0.85

Tested by

no test coverage detected