* feat: made a handler for github stats messages same way as the rest
* fix: remove settingsPageLag through incremental rendering and efficient update of local storage
* refactor: passed eslint
* chore: added GitHubStats types
* feat: added contributor card skeletons
* refactor: pass eslint
* feat: removed trickle rendering and added locking to setCachedData
---------
Co-authored-by: Derek <derex1987@gmail.com>
Co-authored-by: Diego Perez <52579214+doprz@users.noreply.github.com>
* feat: first button attempt
* feat: fetching each course code
* feat: adding courses function from there but idk where to get the active schedule from
* docs: todo
* feat: retrieved active schedule
* feat: button tactics
* feat: add support for my.utexas.edu
* feat: inject button into MyUT
* feat: refactor code to render components dynamically based on site
* feat: scrape course ids from MyUT and remove duplicates
* feat: site support links for classlist
* feat: add utility function to add course by URL
* feat: support additional case for course cal
* feat: duplicates
* chore: cleanup
* feat: temporary checkpoint
* feat: reroute to use new add course by url
* feat: linking to new function, cleaning up, adding messaging for course url add
* chore: unused import
* feat: relinking addCourse function to the button fingers crossed
* feat: we did it!
* chore: remove comment
* chore: cleanup cleanup
* feat: tried to handle the async stuff because of that small bug but nothing fixed. doesnt hurt tho
* feat: i have fixed it holy kevinnn
* chore: delete unused file and organization
* chore: removed unused log
* feat: better log for course add
* chore: refactor via data destructuring
* chore: pass component as prop via React.ComponentType
---------
Co-authored-by: Ethan Lanting <ethanlanting@gmail.com>
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: add CacheStore for GitHub stats and use names instead of usernames
* fix: only cache name for successful API queries
* chore: linting
* chore: refactor any with unknown and add jsdocs
* fix: use cached endpoint to avoid rate limiting issues
* fix: code style
* chore: add type assertion
* fix: use correct type
* Revert "fix: use correct type"
This reverts commit 74956c12f3.
* fix: use correct type
* fix: use URL Web API
* fix: add CONTRIBUTORS_API_ROUTE constant
---------
Co-authored-by: Derek Chen <derex1987@gmail.com>
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: add core curriculum chips to injected popup
* fix: add VP and MAcore indicators
* feat: core now defined in constructor
* fix: make core and flags closer together
* fix: stop empty core chip from showing when no core requirements
* fix: remove optional chaining for core chips
* feat: generalize Chip for both flags and core classes
* fix: change types for storybook and add new story for CoreChip
* fix: remove labelMap prop from Chip, chore: clean up imports
* feat: change tooltip for core curriculum requirement
---------
Co-authored-by: Derek Chen <derex1987@gmail.com>
* Temporarily uninstalling husky cause github desktop has issues with it
* Cleaned up some code. Removed unnecessary state value on injected popup
* Should've fixed popup alignment issue. Still need to integrate course schedule with calendar. Still debugging.
* Updated CalendarGridStories
* Fix: change to ExampleCourse from exampleCourse
* setCourse and calendar header need work
* Update as part of merge
* Fix: fixed build errors
* Fix: Added Todo
* Chore: Cleaned up useFlattenedCourseSchedule hook
* fix: List now keeps track of state when existing items are switched, while adding new items to the end
* Added back husky
* Update src/views/components/calendar/Calendar/Calendar.tsx
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: added type-safety, destructuring, etc. ready for re-review
* refactor: got rid of ts-ignore in openNewTabFromContentScript
* Update src/views/components/calendar/CalendarHeader/CalenderHeader.tsx
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using path aliasing
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using path aliasing
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using satisfies instead of as
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* refactor: using satisfies instead of as
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* style: reformatted spacing
* style: eslint import order
* refactor: added new constructor for UserSchedule to avoid passing down null values to child props
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* fix: use StatusType
* fix: use AutoLoadStatus
* fix: use typof SiteSupport.*
* fix: one more of Status to StatusType
* fix: use import type
* fix: use path alias imports
* fix: use Extract
* fix: remove unnecessary import