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
All checks were successful
Automated Container Build / build-and-push (push) Successful in 1m24s
This commit is contained in:
parent
707719f4af
commit
3d28f767e0
4 changed files with 8 additions and 17 deletions
Binary file not shown.
Binary file not shown.
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
Reference in a new issue