Feat: file organization + theme dark/light + time options :) #38
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
hi :)
this pr refactors the code base to improve maintainability by reorganizing the file structure. while the core functionality remains unchanged, the new structure makes it easier to extend the tool and quickly locate code.
changes
file organization
extracted code from one monolithic file into several smaller, dedicated files.
freewrite/ContentView.swiftfreewrite/models/HeartEmoji.swift– simple model for emoji animationfreewrite/models/HumanEntry.swift– main journal entry modelfreewrite/utils/ColorsHelper.swift– placeholder for shared color valuesfreewrite/utils/FileManagerHelper.swift– handles saving, loading, and deleting entriesfreewrite/utils/FontExtensions.swift– font line height extensionfreewrite/utils/NSViewExtensions.swift– helper to locate nsview subviewsfreewrite/views/SidebarView.swift– sidebar ui extracted into its own viewadditional features
implemented support for light and dark themes, with a flexible structure that allows for additional themes in the future.
added timer options for 25, 15, 10, and 5 minutes.
notes
i started with simple file organization improvements, and while doing so, i also added a few features that i find useful. i hope these changes help build a cleaner and more maintainable foundation for future enhancements.
here is a video:
Freewrite-feats.mp4