From 7293e85e31d49de3eff538a93364409bf31f149b Mon Sep 17 00:00:00 2001 From: Pierre Jacquier Date: Mon, 12 Feb 2024 08:32:02 -0500 Subject: [PATCH] Got stream with default file --- src/Router.tsx | 12 ++---------- src/components/ProjectCard.tsx | 2 ++ src/lib/tauriFS.ts | 28 +++++++++++----------------- 3 files changed, 15 insertions(+), 27 deletions(-) diff --git a/src/Router.tsx b/src/Router.tsx index 7e2bdcc1c..c3d5c3924 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -32,8 +32,8 @@ import { } from '@tauri-apps/plugin-fs' import makeUrlPathRelative from './lib/makeUrlPathRelative' import { + getProjectsInDir, initializeProjectDirectory, - isProjectDirectory, PROJECT_ENTRYPOINT, } from './lib/tauriFS' import DownloadAppBanner from './components/DownloadAppBanner' @@ -278,15 +278,7 @@ const router = createBrowserRouter( ) newDefaultDirectory = projectDir } - const projectsNoMeta = (await readDir(projectDir)).filter( - isProjectDirectory - ) - const projects = await Promise.all( - projectsNoMeta.map(async (p: DirEntry) => ({ - entrypointMetadata: await stat(p.name + sep() + PROJECT_ENTRYPOINT), - ...p, - })) - ) + const projects = await getProjectsInDir(projectDir) return { projects, diff --git a/src/components/ProjectCard.tsx b/src/components/ProjectCard.tsx index 6634dd67d..a60d34035 100644 --- a/src/components/ProjectCard.tsx +++ b/src/components/ProjectCard.tsx @@ -41,6 +41,8 @@ function ProjectCard({ function getDisplayedTime(date: Date) { const startOfToday = new Date() startOfToday.setHours(0, 0, 0, 0) + // TODO: fix time + return "" return date.getTime() < startOfToday.getTime() ? date.toLocaleDateString() : date.toLocaleTimeString() diff --git a/src/lib/tauriFS.ts b/src/lib/tauriFS.ts index e547ca1e7..5f2a26539 100644 --- a/src/lib/tauriFS.ts +++ b/src/lib/tauriFS.ts @@ -5,7 +5,7 @@ import { writeTextFile, stat, } from '@tauri-apps/plugin-fs' -import { documentDir, homeDir, sep } from '@tauri-apps/api/path' +import { documentDir, homeDir, join, sep } from '@tauri-apps/api/path' import { isTauri } from './isTauri' import { ProjectWithEntryPointMetadata } from '../Router' @@ -51,26 +51,20 @@ export async function initializeProjectDirectory(directory: string) { return INITIAL_DEFAULT_DIR } -export function isProjectDirectory(fileOrDir: Partial) { - return ( - fileOrDir.children?.length && - fileOrDir.children.some((child) => child.name === PROJECT_ENTRYPOINT) - ) -} - // Read the contents of a directory // and return the valid projects export async function getProjectsInDir(projectDir: string) { - const readProjects = ( - await readDir(projectDir, { - recursive: true, - }) - ).filter(isProjectDirectory) - + const dirs = await readDir(projectDir) const projectsWithMetadata = await Promise.all( - readProjects.map(async (p) => ({ - entrypointMetadata: await stat(p.name + sep() + PROJECT_ENTRYPOINT), - ...p, + dirs + .filter(async (p) => { + const files = await readDir(await join(projectDir, p.name)) + return files.some(d => d.name === PROJECT_ENTRYPOINT) + }) + .map(async (p) => ({ + entrypointMetadata: await stat(await join(projectDir, p.name, PROJECT_ENTRYPOINT)), + path: await join(projectDir, p.name), + ...p, })) )