This change log only highlights important changes.
- ➕ : New feature
- 🛠️ : Fix
- ⚙️ : Code change with no impact on the user experience.
- ➕ Delete/Hide all buttons are now regular text buttons instead of icon buttons.
- 🛠️ Fixed item controls pulling level meter and text to the right when the move up button is not available (first item in list).
- 🛠️ Fixed draft validation not checking for invalid skill/language levels.
- 🛠️ Fixed page on smaller screens not stretching to viewport width.
- ⚙️ Fixed app resource validator not returning a boolean.
- ➕ Page elements are now centered in the viewport and no longer stretches too far on super wide screens.
- 🛠️ Page body now has proper background color based on theme instead of default white.
- 🛠️ Attempting to parse invalid JSON will now display an error message.
- ⚙️ Refactored draft validation functions into more general purpose ones.
- ⚙️ Improved capitalizing first letter utility function, it now parses the string and capitalizes characters preceeded by a white space.
- ⚙️ Improved text highlighting utility function, highlights text while parsing the string instead of splitting into an array.
- ⚙️ Calculate text level utility function now throws on receiving invalid parameters.
- ⚙️ Return same array if the item being moved up is already at the top (removes unnecessary re-render).
- ⚙️ Add missing deep copy utility function call.
- 🛠️ Improved upload draft button accessibility.
- 🛠️ Improved item controls buttons accessibility.
- 🛠️ Improved clear text field button accessibility.
- ⚙️ Moved CV order and level modes templates to their own modules.
- 🛠️ Fixed Uploading draft crash.
- ➕ Removed "move item up" button from first item in a list.
- ➕ Added animation to dialog box.
- 🛠️ Fixed typos in delete all item dialog.
- 🛠️ Fixed dialog closing when user clicks inside the dialog box instead of only when cancel or backdrop button is clicked
- ⚙️ Dialog reducers are now passed through a context instead of prop drilling.
- ⚙️ Replaced dialog state setters with reducers.
- ⚙️ Moved dialog call one layer deeper for future animation purposes (callback delay).
- ⚙️ User data made of lists now use reducers for state updates to reduce complexity.
- ⚙️ Update Node modules to the latest version.
- ⚙️ Fixed typo in settings tab.
- 🛠️ Fixed CV preview not filling A4 page height.
- ➕ CV preview is now affected by zoom.
- 🛠️ List item text is now cropped when it grows bigger than available space. Cropped text can be read by either entering into edit mode or hover over text.
- 🛠️ Fixed multiple accessibility issues.
- ⚙️ Switched to CSS modules.
- ⚙️ Unit tests are now more focused on functionality.
- 🛠️ Fix modern layout (layout_02) showing "native" for maxed out skill items.
- ➕ User can now choose text rating for skills and languages (i.e strong vs. familiar)
- ➕ Level slider now displays level value based on proficiency level mode.
- ➕ Invalid drafts can now be fixed by replacing invalid sections with default values.
- ➕ Tab buttons are now smaller so the user does not need to scroll to reach some tabs.
- ➕ External links now open in a new tab.
- ➕ Add "delete all" and "hide/show all" buttons to all list sections.
- ➕ Education and Experience sections' order can now be swapped (i.e education then experience or experience then education)
- 🛠️ Tab buttons no longer have distorted/broken borders when in focus.
- 🛠️ CV preview in mobile view is now centered instead of being shifted to the left.
- 🛠️ Fix list items controls and text overflowing when zooming into page.
- 🛠️ Fix navigation tabs tooltips showing current active tab instead of the title of the tab it activates.
- 🛠️ Fix modern layout (layout_02) not changing fonts.
- ⚙️ Reset accent color, font and layout using sample info values instead of hardcoded ones.
- ⚙️ Reduce number of props passed to language and skill list item component.
- ➕ Critical information in the confirm action dialog is now highlighted in red.
- 🛠️ Contact and personal information that are left empty are now removed from the preview.
- 🛠️ Move contact info tab higher up the navigation bar.
- 🛠️ Fix double question mark in confirm message prompt.
- ⚙️ Refactor navigation tabs and pages to completely unmount inactive pages instead of returning an empty fragment while maintaining child's states.
- ⚙️ Move sample info file to correct folder.
- 🛠️ Fix warning dialog backdrop resizing visibly on narrow screens when scrolling due to dynamic viewport height.
- 🛠️ Fix main controls buttons stack on the left side.
- 🛠️ Fix performance hit when resizing screen due to duplicating event listeners.
- ⚙️ Reduce amount of functions passed to each section.
- ⚙️ Restructure src folder hierarchy for easier navigation.
- ➕ Show a confirm message before deleting/reseting data.
- ➕ Add a website category to link types.
- ➕ Auto-capitalize the start of each word in the full name field as the user types.
- 🛠️ Fix mobile display styles appearing on some wide screens.
- 🛠️ Fix textbox losing focus after clicking clear field button. This is most visible on mobile devices as it closes the keypad when the textbox loses focus.
- ➕ Empty sections or sections full with hidden items will now be removed from CV preview.
- ➕ Add focus effect to clear field button.
- ➕ Add a link to the change log in the About section.
- ➕ Improve space management of skill items and language items in the simple layout (layout_01).
- 🛠️ Fix CV preview shrinking to the center of the page instead of sticking to the top on narrower screens.
- 🛠️ Fix page overflow in print/export mode.
- ⚙️ Add reusable function to detect empty CV sections.
- ➕ Hovering over buttons now shows a tool tip.
- ➕ Edit/Add item form submit button text now reflects form's prupose.
- ➕ Add a clear field button to text boxes.
- ➕ New list items can now be added through a form instead of adding a placeholder item.
- ➕ Reloading page no longer resets draft's data.
- 🛠️ Fix List item text not wrapping and causing buttons to overflow.
- 🛠️ Fix edit/add item forms accessibility issues.
- ⚙️ Simplified personal info and contact components state setters.
- ⚙️ Add accent color, font and layout to sample info object.
- ⚙️ Merge list items return statements to avoid duplicating common code.
- ⚙️ Remove empty item templates.
- ➕ Dark mode button now shows current active theme instead of the one it activates on the next click.
- 🛠️ Improve skill/language level bar accessibility.
- 🛠️ Fix some link icons' color not being completely black/white.
- 🛠️ Fix empty list text using the wrong font color.
- ➕ Save dark mode preference to local storage.
- ➕ Use disctinct colors for dark mode button based on the mode it activates.
- ➕ Animate dark mode button on mode switch.
- 🛠️ Fix hidden list item text color.
- 🛠️ Fix skill/language level bar not adjusting to screen width and casuing overflow
- 🛠️ Fix CV preview text not adjusting with accent color's brightness.
- ➕ Add dark mode option.
- ➕ Add more verifications for uploaded drafts.
- 🛠️ Fix typo in sample info.
- ⚙️ Move draft verification functions from utility to their own module.
- ⚙️ Write unit tests for low level components.
- ➕ Close harmburger menu on screen scroll.
- 🛠️ Fix hambruger menu sometimes not closing when user clicks outside it.
- ➕ List item controls can be now accessed through a hamburger menu on narrower screens to save space.
- ➕ List items can now be moved up the list.
- 🛠️ Fix broken link icons.
- 🛠️ Fix a typo in sample data.
- ⚙️ Replace direct icon imports with import barrels.
- ⚙️ Remove unused code.
- ➕ Display a text message when a list has no items.
- 🛠️ Reduce app logo size.
- ⚙️ Use an early return for disabled lists.
- 🛠️ Fix list item buttons shrinking when item text grows too long.
- 🛠️ Fix list item text overflowing.
- ➕ List items can now be deleted without having to go to edit mode.
- 🛠️ Reduce list item buttons size for better space distribution.
- 🛠️ Fix controls not scrolling down on some devices.
- ➕ Draft compatibility is validated based on structure not version number.
- ➕ Older version drafts can now be used in higher versions.
- ➕ Draft JSONs created by older versions can no longer be used in higher versions.
- 🚀 First build