-
Notifications
You must be signed in to change notification settings - Fork 0
Implemented Persistent Filesystem solution #206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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) => ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same here




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.