Implemented Persistent Filesystem solution#206
Implemented Persistent Filesystem solution#206stijnpotters1 wants to merge 13 commits intomasterfrom
Conversation
…iles for cleaner code
…stem interactions
|
| } | ||
|
|
||
| List<FilesystemEntry> entries = new ArrayList<>(); | ||
| try (Stream<Path> stream = Files.list(dir)) { |
Check failure
Code scanning / SonarCloud
I/O function calls should not be vulnerable to path injection attacks High
| } | ||
|
|
||
| Path dir = Paths.get(path).toAbsolutePath().normalize(); | ||
| if (!Files.exists(dir) || !Files.isDirectory(dir)) { |
Check warning
Code scanning / SonarCloud
Accessing files should not lead to filesystem oracle attacks Medium
| } | ||
|
|
||
| Path dir = Paths.get(path).toAbsolutePath().normalize(); | ||
| if (!Files.exists(dir) || !Files.isDirectory(dir)) { |
Check warning
Code scanning / SonarCloud
Accessing files should not lead to filesystem oracle attacks Medium
Daan0709
left a comment
There was a problem hiding this comment.
Some small changes needed, and you should take a look at the security issues.
| selectedEntry === entry.absolutePath ? 'bg-backdrop font-medium' : 'hover:bg-backdrop/50' | ||
| }`} | ||
| > | ||
| <span className="text-xs">📁</span> |
There was a problem hiding this comment.
Shouldnt you use the Folder.svg here instead? Keeps the whole application more consistent
| useEffect(() => { | ||
| clearProject() | ||
| }, [location.key, clearProject]) | ||
| clearProjectState() |
There was a problem hiding this comment.
Probably a good idea to also clear the tab stores, these will linger into different projects
| // Filter projects by search string (case-insensitive) | ||
| const filteredProjects = projects.filter((project) => project.name.toLowerCase().includes(search.toLowerCase())) | ||
| const projects = recentProjects ?? [] | ||
| const filteredProjects = projects.filter((p) => p.name.toLowerCase().includes(searchTerm.toLowerCase())) |
There was a problem hiding this comment.
Abbreviations like this (p) are generally worse for readability of the code, although I know I also sometimes forget
| {projects.length === 0 ? ( | ||
| <p className="text-muted-foreground mt-10 text-center text-sm italic">No projects found</p> | ||
| ) : ( | ||
| projects.map((p) => ( |




It works both locally and on cloud
Full integration with file system
Open and saves original folder and files on the frank flow.
you can create a new project in your file system and work in it.
you can clone a github repository to your local file system and work in it.
Your recent projects are being tracked and you also can delete then from your recents.