chore: remove stale comments
This commit is contained in:
@@ -65,7 +65,7 @@ npm run dev
|
|||||||
|
|
||||||
Access the app at `http://localhost:3000`
|
Access the app at `http://localhost:3000`
|
||||||
|
|
||||||
> **Note:** The current upload contract accepts `model.gltf` and preserves it as GLTF. `.glb` uploads are rejected by validation.
|
> **Note:** Uploads accept `model.gltf` and preserve it as GLTF. `.glb` uploads are rejected by validation.
|
||||||
>
|
>
|
||||||
> Local 3D preview supports `model.gltf` folders by resolving dropped companion files such as `model.bin` and textures through local object URLs.
|
> Local 3D preview supports `model.gltf` folders by resolving dropped companion files such as `model.bin` and textures through local object URLs.
|
||||||
> The preview also shows a small model stats helper with estimated draw calls, meshes, triangles, materials, and texture count.
|
> The preview also shows a small model stats helper with estimated draw calls, meshes, triangles, materials, and texture count.
|
||||||
@@ -168,7 +168,7 @@ update: upload-gltf update -> coffeetest
|
|||||||
🔄 color_tuyaux.jpg (compressed)
|
🔄 color_tuyaux.jpg (compressed)
|
||||||
```
|
```
|
||||||
|
|
||||||
Sections currently used:
|
Commit sections:
|
||||||
|
|
||||||
- `📦 Model`
|
- `📦 Model`
|
||||||
- `🎨 Textures (color)`
|
- `🎨 Textures (color)`
|
||||||
@@ -185,11 +185,11 @@ Symbols: `✅` new — `🔄` modified — `↔️` unchanged (model always re-p
|
|||||||
|
|
||||||
Uploaded models are pushed to `public/models/<folderName>/` in the target repo.
|
Uploaded models are pushed to `public/models/<folderName>/` in the target repo.
|
||||||
|
|
||||||
## Current Limitations
|
## Limitations
|
||||||
|
|
||||||
- Large uploads are faster than before because the folder is staged only once, but the Drive upload remains sequential.
|
- Large uploads are faster than before because the folder is staged only once, but the Drive upload remains sequential.
|
||||||
- Git LFS uploads are still sequential.
|
- Git LFS uploads are still sequential.
|
||||||
- The current upload contract expects a single `model.gltf` file plus optional flat support files (`.bin`, `.png`, `.jpg`, `.jpeg`, `.webp`).
|
- Uploads expect a single `model.gltf` file plus optional flat support files (`.bin`, `.png`, `.jpg`, `.jpeg`, `.webp`).
|
||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ export default function FolderCard({ entry, index, onToggleViewer, onRemove }: F
|
|||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className="flex items-center gap-3 bg-black-800 border border-white/20 rounded-xl px-4 py-3">
|
<div className="flex items-center gap-3 bg-black-800 border border-white/20 rounded-xl px-4 py-3">
|
||||||
{/* Status icon */}
|
|
||||||
<div className="shrink-0">
|
<div className="shrink-0">
|
||||||
{entry.status === 'success' ? (
|
{entry.status === 'success' ? (
|
||||||
<div className="w-8 h-8 rounded-full bg-green-900/30 flex items-center justify-center">
|
<div className="w-8 h-8 rounded-full bg-green-900/30 flex items-center justify-center">
|
||||||
@@ -45,7 +44,6 @@ export default function FolderCard({ entry, index, onToggleViewer, onRemove }: F
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Info */}
|
|
||||||
<div className="flex-1 min-w-0">
|
<div className="flex-1 min-w-0">
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<span className="text-sm text-gray-200 font-mono truncate">{entry.folderName}/</span>
|
<span className="text-sm text-gray-200 font-mono truncate">{entry.folderName}/</span>
|
||||||
@@ -76,7 +74,6 @@ export default function FolderCard({ entry, index, onToggleViewer, onRemove }: F
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Remove button */}
|
|
||||||
{entry.status !== 'uploading' && (
|
{entry.status !== 'uploading' && (
|
||||||
<button
|
<button
|
||||||
onClick={() => onRemove(index)}
|
onClick={() => onRemove(index)}
|
||||||
@@ -88,12 +85,10 @@ export default function FolderCard({ entry, index, onToggleViewer, onRemove }: F
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Warning banner */}
|
|
||||||
{entry.status !== 'success' && (
|
{entry.status !== 'success' && (
|
||||||
<WarningBanner warnings={entry.warnings} />
|
<WarningBanner warnings={entry.warnings} />
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* 3D preview */}
|
|
||||||
{entry.modelUrl && entry.status !== 'success' && (
|
{entry.modelUrl && entry.status !== 'success' && (
|
||||||
<div
|
<div
|
||||||
className={`transition-all duration-300 ease-in-out overflow-hidden ${
|
className={`transition-all duration-300 ease-in-out overflow-hidden ${
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
// ---------------------------------------------------------------------------
|
|
||||||
// Shared constants — used by both client and server
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
export const MODEL_EXTENSIONS = new Set(['.gltf'])
|
export const MODEL_EXTENSIONS = new Set(['.gltf'])
|
||||||
export const TEXTURE_EXTENSIONS = new Set(['.png', '.jpg', '.jpeg', '.webp'])
|
export const TEXTURE_EXTENSIONS = new Set(['.png', '.jpg', '.jpeg', '.webp'])
|
||||||
export const ASSET_EXTENSIONS = new Set(['.bin'])
|
export const ASSET_EXTENSIONS = new Set(['.bin'])
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
// ---------------------------------------------------------------------------
|
|
||||||
// Shared types
|
|
||||||
// ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
import type { AssetCategory } from './asset-classification'
|
import type { AssetCategory } from './asset-classification'
|
||||||
|
|
||||||
export interface ParsedFile {
|
export interface ParsedFile {
|
||||||
|
|||||||
Reference in New Issue
Block a user