Remove pinned section from OfficeHome main body and use generated docx templates
All checks were successful
Automated Container Build / build-and-push (push) Successful in 1m24s

This commit is contained in:
Elijah 2026-05-24 19:47:30 -07:00
parent 707719f4af
commit 3d28f767e0
4 changed files with 8 additions and 17 deletions

Binary file not shown.

Binary file not shown.

View file

@ -487,8 +487,7 @@ export default function FileExplorer({ onLogout }: FileExplorerProps) {
const [pinnedFiles, setPinnedFiles] = useState<FileItem[]>([]);
useEffect(() => {
if (pinnedExpanded) {
api.listPinned().then(data => {
api.listPinned().then(data => {
const items = data.items || [];
items.sort((a: FileItem, b: FileItem) => {
const idxA = pinnedOrder.indexOf(a.path);
@ -500,8 +499,7 @@ export default function FileExplorer({ onLogout }: FileExplorerProps) {
});
setPinnedFiles(items);
}).catch(console.error);
}
}, [pinnedExpanded, pinnedOrder, pinnedRefreshCounter]);
}, [pinnedOrder, pinnedRefreshCounter]);
async function handlePinnedDragEnd(sourcePath: string, destPath: string) {
const newOrder = [...pinnedOrder];
@ -1908,7 +1906,8 @@ export default function FileExplorer({ onLogout }: FileExplorerProps) {
<OfficeHome
type={appMode}
onFileSelect={(file) => setEditingFile(file)}
onCreateBlank={(file) => setEditingFile(file)}
onCreateBlank={(file) => setEditingFile(file)}
onPinChange={() => setPinnedRefreshCounter(c => c + 1)}
/>
) : (
<div className="flex flex-1 overflow-hidden">

View file

@ -17,6 +17,7 @@ interface OfficeHomeProps {
type: 'docs' | 'slides';
onFileSelect: (file: FileItem) => void;
onCreateBlank: (file: FileItem) => void;
onPinChange?: () => void;
}
// Custom Word icon (blue)
@ -43,7 +44,7 @@ interface ContextMenuState {
file: FileItem;
}
export default function OfficeHome({ type, onFileSelect, onCreateBlank }: OfficeHomeProps) {
export default function OfficeHome({ type, onFileSelect, onCreateBlank, onPinChange }: OfficeHomeProps) {
const [recentFiles, setRecentFiles] = useState<FileItem[]>([]);
const [pinnedFiles, setPinnedFiles] = useState<FileItem[]>([]);
const [allFiles, setAllFiles] = useState<FileItem[]>([]);
@ -161,6 +162,7 @@ export default function OfficeHome({ type, onFileSelect, onCreateBlank }: Office
try {
await api.togglePin(file.path);
fetchFiles();
if (onPinChange) onPinChange();
} catch (err) {
console.error("Failed to pin", err);
}
@ -318,17 +320,7 @@ export default function OfficeHome({ type, onFileSelect, onCreateBlank }: Office
</div>
</div>
{/* Pinned Documents */}
{pinnedFiles.length > 0 && (
<div className="py-8 px-10 border-b" style={{ borderColor: 'var(--color-border)' }}>
<div className="max-w-6xl mx-auto">
<h2 className="text-lg font-medium mb-6" style={{ color: 'var(--color-text-primary)' }}>Pinned {title.toLowerCase()}</h2>
<div className="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 gap-6">
{pinnedFiles.map(file => renderFileCard(file))}
</div>
</div>
</div>
)}
{/* Recent Documents */}
<div className="py-8 px-10">