Skip to content
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

Drop module-alias for tsconfig-paths #86

Closed
godwinpang opened this issue Aug 30, 2020 · 1 comment
Closed

Drop module-alias for tsconfig-paths #86

godwinpang opened this issue Aug 30, 2020 · 1 comment
Assignees
Labels
dev experience Focus on enhancing developer experience
Milestone

Comments

@godwinpang
Copy link
Contributor

https://www.npmjs.com/package/tsconfig-paths

we are using ts lmao

@godwinpang godwinpang added the dev experience Focus on enhancing developer experience label Aug 30, 2020
@godwinpang godwinpang added this to the Demo milestone Aug 30, 2020
@godwinpang godwinpang self-assigned this Aug 30, 2020
@godwinpang
Copy link
Contributor Author

nvm it doesn't work bye

thai-truong added a commit that referenced this issue Feb 19, 2021
This is so that the dropdowns can have their specific characteristics,
while still allowing users to customize them.
thai-truong added a commit that referenced this issue Feb 19, 2021
* Adds dx-react-scheduler dependencies for calendar.

* Adds route for CalendarPage with sidebar link. Temporarily routes to ResumePage.

* Solves dependency issue that prevented app startup.
facebook/create-react-app#8499

* Adds calendar page to events.

* Adds component based development guide with testing instructions.

* Adds development guides.

* Patch claims to be lowercase.

* Adds removed Calendar route.

* EventDetails implemented

* Firebase Refactor (#44)

* fix returns to be objects instead of queries

* separation of functions initial

* setup temp

* removed withFirebase completely

* fix imports and remove extra

* initial event editing

* Fixed bug for EventDetailsPage/EventDetailsComponent with temporary solution and finished both EventDetailsPage and EventDetailsComponent as well, will now be looking at how to improve how the page looks.

* Added Links component on /test route

* QOL changes for Navbar.

Fixes previous bug where developers had to hardcode a marginTop offset
in pages. Refactor Navbar to reduce code duplication.

* Refactors user doc functions to take in uid.

* Changes context to pass down object instead of just the keys.

* Adds hotfix for non persistent signin state.

* Made changes to how EventDetailsComponent looks

* QOL changes for Navbar.

Fixes previous bug where developers had to hardcode a marginTop offset
in pages. Refactor Navbar to reduce code duplication.

* Refactors user doc functions to take in uid.

* Changes context to pass down object instead of just the keys.

* Fixes Auth to pass down props.

* Fixes tabs to take in uids.

* Adds export for getUserDocument

* Done with EventDetailsPage and EventDetailsComponent, including how they look (can definitely be improved in the future. Also included the firebase function that gets event documents by ID from events Collection

* event editing form

* styling fixes

* Firebase Refactor (#44)

* fix returns to be objects instead of queries

* separation of functions initial

* setup temp

* removed withFirebase completely

* fix imports and remove extra

* initial event editing

* event editing form

* styling fixes

* temp unlink

* refactor component page org

* eventList Skeleton

* switch between views

* ui updates

* style updates and passing events from calendarpage to eventlist

* database call and cleanup

* add new component and form hosts field working

* styling refactoring

* fix proptypes on form

* onChange fixes and notes

* decoupling

* Refactored EventDetails to using mostly <Grid> from material.ui, with one div left, which should be fine. The change for HOCs from singleton to context has not been done, however, so do keep that in mind if you plan to use the current Auth/Perm HOCs

* Finished implementing a solution for role-based rendering of components and routing to pages using React context. Also finished refactoring EventDetails from using all divs to using mostly Material.ui's <Grid>

* Fixed up <Grid> in EventDetails, changed the comments in RenderByContextPerm.js RoutingByContextPerm.js, finished the confirmation modal for EventDetails, and removed the TestPage folder

* Revert "Fixes tabs to take in uids."

This reverts commit cc11f0e.

* Update index.js

* Resolve merge conflict on reverting context changes.

* cleanup

* Delete yarn.lock

Not sure why there's a yarn file since we're using npm...

* Minor changes to EventDetails's styles.js, EventCard now takes the id from the event being clicked on in Calendar instead of having a hardcoded id for the URL to EventDetailsPage

* change from date to timestamps

* Update issue templates

* CircleCi Project Setup (#52)

* Add .circleci/config.yml

* Updates eslintrc to ignore Cypress.

* Allows tests to pass with no tests ;)

* Update CODEOWNERS

* Adds stuff to run cypress tests (#53)

* Removes example tests.

* Adds support for running cypress through npm.

* Setup Cypress to not take screenshots and videos on test failure.

* Refactor tests to take in testing credentials using dotenv.

* Update Circleci config to run Cypress tests.

* react-app-rewired can't be dev dep.

* Customize-cra can't be dev dep either...

* Fixes bug with https due to react-scripts.

More info: facebook/create-react-app#8079

* Adds netlify toml file to fix routing. (#54)

* Adds netlify status.

* Fixes packages from npm audit. (#55)

* Revert "Fixes packages from npm audit. (#55)"

This reverts commit ba7fc9b. Breaks
react-scripts :(

* style

* Adds circleci.

* Refactored the use of timestampToDate and datetoTimestamp so they are now only used in src/services/events.js and not in src/pages/EventEditPage/event_edit.js

* Fixed up things caught by ESLint, which includes PropTypes, function call used before function declaration and function body, unused imported components, and unused non-empty parameters for arrow functions

* Added react-app-rewired as a dependency in package.json

* Removed react-app-rewired from devDependencies in package.json

* Pulling from events branch

* Made sure that everything still works after updating environment variables

* Minor changes to cypress.json so events is good

* Update package.json

* Test run for CircleCI with different cypress version

* Pin react-scripts version.

react-scripts 3.4.1 breaks running inside docker containers.
See: facebook/create-react-app#8688

* Finished the frontend of the sign up page, besides making HTTP requests to send in inputted data from the user to the db (need to wait for backend on that first)

* Forgot to integrate the cypress+circleci bug fix lol mb

* Minor fixes to the front end of this new sign up page (first name field) and added the fix for the cypress+CircleCI bug

* Removed binding statement for handleState in <SignUpPage /> in src/pages/SignUpPageNew

* Test run for CircleCI with different cypress version

* Finished the frontend of the sign up page, besides making HTTP requests to send in inputted data from the user to the db (need to wait for backend on that first)

* Minor fixes to the front end of this new sign up page (first name field) and added the fix for the cypress+CircleCI bug

* Removed binding statement for handleState in <SignUpPage /> in src/pages/SignUpPageNew

* Finish merging master with newSignupPage

* Fixed minor bugs relating to proptypes and props, now just the buggy EventsPage left (might have to take it out or rewrite it completely)

* Added major dropdown and generic year dropdown for Formik's <Field />.
These two dropdown components can be put into the component prop of
Formik's <Field /> i.e. <Field component={MajorDropdown}.

Note that year dropdown needs to be supplied a minyear and a maxyear
prop for it to work properly.

Ex: <Field component={YearDropdown} minyear={#} maxyear={#} />

* Added capitalization to 'startDate' and 'endDate' column title in
List view of the calendar.

* Added most changes commented on PR #75.

I've added most of the changes commented on the PR,
but I left out styles.js in SignUpPageNew since I can't
make things look nice without lots of hardcoded margins
and paddings for <Card />, as opposed to <Grid />.

Changes:
  - Got rid of !! and ?? operators in the dropdown files
  - Put schema in a separate file (schema.js)
  - Added index.js in dropdowns to export both major and
    year dropdowns with 1 import statement.
  - Put in proper changes for <Grid /> in SignUpForm so
    things look better now and I got rid of most of the
    hardcoded margins and paddings for styles.js.
  - Added clarification to what getIn() does as comments
    in the dropdown files.

* Made more changes in terms of caps and <Grid />.

Changes:
  - <Grid component item /> now becomes:
      <Grid item>
        <Grid component>
          ...
        </Grid>
      </Grid>
  - Changed schema name from VALIDATION_SCHEMA to just 'schema'

* Fix casing for dropdowns.

* Modified major and year dropdowns so they use Formik's <Field />.

I changed major and year dropdowns so they use Formik's <Field />
so that we don't have to use formik-material-ui's <TextField />
code to make a custom MajorDropdown or YearDropdown. This is to
prevent possible compatibility issue in the future.

* Changed all instances of theme.spacing.unit to theme.spacing().

* Added sort by DateTime to the List view of Calendar.

* Refactored dateTimeSort() into eventDateComparator().

eventDateComparator takes two event objects and a boolean to
indicate whether we want to compare by start or end date.

* Refactored eventDateComparator() so it looks cleaner.

* Added major and year dropdowns to use with forms made with Formik.

* Modified both dropdowns so that they allow props to bubble down.

This is so that the dropdowns can have their specific characteristics,
while still allowing users to customize them.

* Modified both dropdowns so that they allow props to bubble down. (#86)

This is so that the dropdowns can have their specific characteristics,
while still allowing users to customize them.

* Removed the redundant MajorDropdown and YearDropdown folders. (#87)

Messed up on merging the PR for MajorDropdownField and YearDropdownField
so both MDF/YDF and MD/YD appeared in the dropdowns folder. Since
MDF/YDF is the newer version, remove MD/YD.

* Cleaned up how readOnlyProps is handled.

readOnlyProps is now just an object with key-value pairs with
no nested objects (had a nested object before).

* Moved fetch call to /signup in SignUpPageNew to services/auth.

This is to ensure that layer abstraction is maintained, so that
frontend SignUpPageNew doesn't know what we are doing for the
sign up process.

* Added 'lint_prettier' job, which is made from 'lint' job.

lint_prettier first runs 'npm run lint', then it runs
'npx prettier --check ./src/**/*.ts' to see if all Typescript
files follow Prettier's style rules. If there are files that
do not follow Prettier's style rules, lint_prettier will fail.
Note that --check will show Typescript files that do not follow
Prettier's style rules.

lint_prettier has to succeed for cypress/run to start.

* Changed npx prettier --check ./src/**/*.ts to ./src/**/*.js.

* Added endpoints.js to store endpoint constants for API fetch calls.

endpoints.js is in src/constants. Since I made this branch from master,
there isn't a place where I can use the API's base url (an environment
variable) with an endpoint constant to make a fetch call(), so yeah
this is gonna be a short PR (I can do this in newSignupPage branch,
but the PR for that is already so bloated I don't want to add more).

And also, to be frank, the biggest change for this PR is in .env, so
that's also why this is such a short PR.

* Added base API url as an env var.

* Ran Prettier to make sure everything complies with Prettier code style.

* Removed old signup page and put in new sign up page.

Removed everything for the old signup page and put in the new
signup page as the current signup page. Removed new signup page
test endpoint from App/index.js and constants/routes.js.

* Added BaseModal, ConfirmModal and AlertModal.

BaseModal is made using MUI's Dialog components. ConfirmModal
and AlertModal use BaseModal for their implementation. Not
sure if ConfirmModal and AlertModal are made in the best way
possible so if someone can check that that would be very
helpful.

I used our own Button component, made by Godwin.

DeleteEditButtons's modal now use ConfirmModal. This was done
as an example to display these new Modals. This modal should
be identical to the previous one written straight into
DeleteEditButtons's index file.

Also, screw PropTypes.

* Changed BaseModal and created ButtonWithModal.

BaseModal's opening and closing now relies on the useState hook
in ButtonWithModal. ButtonWithModal is just a modal with a button
that can be used to open that modal.

In addition to that, ConfirmationModalWithButton and
AlertModalWithButton are also created using ButtonWithModal.
ConfirmationModalWithButton is basically a two-choice modal with
a button to open it. AlertModalWithButton is a modal with only
one action.

* Changed things based on latest comments on PR.

Inlined handleOpen and handleClose in ButtonWithModal. Made it so
that the cancel/close buttons for ConfirmationModalWithButton and
AlertModalWithButton only close the modal and nothing else. Made
cancel/close button on the left and confirm button on the right
for ConfirmationModalWithButton.

* Changed naming and props for things in modals folder.

* Changed name of AlertModalWithButton to ButtonWithAlertModal.

This is to conform with ButtonWithConfirmationModal.

* ProfilePage + Edit (#108)

* Modify input field to return Formik Field on non readonly.

* Adds buttons

* Fix button children to display text.

* Add formlayout API + formSections.

* Add Profile+Edit pages w/o integrations.

I don't want to integrate when we're throwing stuff into Postgres.

* One way of reorganizing our file structure.

Put all components belonging only to one page to that page's component
folder. Components that are and can be used by more than one page and/or
components from a different page should be put in the top-level components
folder.

* Messed up by not fixing all the filepaths due to moving files/folders.

Everything is now fixed (hopefully).

* Added path aliasing for all of ./src's folders and src itself.

All the path aliases are defined in config-overrides.js. I have
changed the filepaths of import statements that I think needed
to use the defined path aliases.

* Navigating to invalid enpoints now redirects to the home page.

If not logged in, then redirect to login page. If logged in, then
redirect to home page.

* Capitalized all path aliases and added index.js to components + pages.

src/components and src/pages now have index.js files to have the ability
to conveniently import the components and the pages via just one import
statement. Fixed any circular dependency as well (I think so, linter
stops giving any circular dependency error now). Fixed import statements
to use those folders' index files as well, when applicable.

* Made changes to accomodate the newly added profile + edit pages.

Added path aliases for profile + edit pages. Added FormLayout to
src/components' index file.

* Using Route's render prop instead of component prop for src/pages/App.

* Replaced @src (./src) with @contexts (./src/contexts).

Since we don't export any other file in top-level src folder other
than ./src/contexts.js, make a path alias for contexts.js instead
so whenever we want to use React contexts, just import from
'@contexts'.

* Added import statement accidentally removed from merging process.

* Added import/order rules to auto rearrange our imports.

I ran 'npm run lint' but didn't really see things change. Idk if
that's just because the files I checked were already in the correct
import style, or it just didn't work... Also, had to put it in
"settings" instead of having it be a top-level "import/order" rule,
even though "eslint-plugin-import" docs on "import/order" seems
to indicate that it could be top-level.

* Put "import/order" in "rules" instead of "settings" in .eslintrc.

I didn't know where to put it before, so I just put "import/order" in
"settings". That didn't work so I put it in "rules" instead and it works
now.

Also had to make customize-cra a dependency instead of a devDependency
or else eslint won't let me commit.

* Removed ClaimsSingleton, used UserContext for conditional render/routing

The file ./src/services/claims.js is removed completely. The
AuthUserContext is now called UserContext. UserContext contains an
object (userClaims) that has user_id (the user's ID obtained from user's
Firebase claims) and userRoles (all of the user's roles from user's
Firebase claims) fields. This UserContext is use in
./src/HOCs/*Authorization.js for role-based rendering and routing.

App.js now passes down the setClaims function to SignUpPage as well, so
that the userClaims state in App.js gets updated with the user_id and
userRoles from the logged in user.

No code uses ClaimsSingleton or its other functions (isOfficer,
isMember, isInductee) anymore.

* Made changes based on comments left on PR #116

Changed user_id to userId in App.js, put getRolesFromClaims in
services/claims.js and made functions isAnOfficer(userContext),
isAMember(userContext) and isAnInductee(userContext) in
services/claims.js as well.

* Changed all pages that didn't use UserContext to using them.

PointsPage now use UserContext to check if a user is a member (aka
member or officer) or not. InducteePointsPage now doesn't even
check for roles, since routing HOC limited access to just officers
already.

Fixed up InducteePointsPage so that it works now because the db
migration broke a lot of the service functions that we have.

* Changed newlines-between rule of import order to "always".

* Added EvenSignInPage and EventSignInForm, still WIP

* Fixed errors resulting from merge conflicts.

* Added event signin page on endpoint /events/:id/signin. Still WIP.

* Added changes agreed upon in the dev meeting.

- Changed checkbox's color to blue (was originally red).
- Removed the button on EventCard to get to signin form and
  put the link into <Links/> in EventDetailsComponent.
- Changed Grid's spacing to all 4 for EventSignInPage and
  EventSignInForm.

* Added a generic dropdown and gave it a readOnly option.

Major+Year dropdowns are built from the generic dropdown. Just pass in
readOnly as a prop to major+year dropdowns to get their read-only
version (remember to set a value to the read-only dropdown as well
for them to display values).

* BaseDropdown now uses props.selections instead of props.children.

Affiliate, Major and Year dropdowns now pass their respective arrays
of choices through selections prop to GenericDropdownField.

* Changed from props.children to props.selections for consistent type.

* Added RSVP form, which is currently identical to the sign in form.

This form is expected to have more input fields, but until we get
to that, this is more than good enough.

* [ImgBot] Optimize images (#124)

*Total -- 200.31kb -> 77.72kb (61.2%)

/src/images/hkn-logo-black.png -- 189.98kb -> 71.89kb (62.16%)
/src/images/hkn-trident.png -- 10.33kb -> 5.82kb (43.64%)

Signed-off-by: ImgBotApp <[email protected]>

Co-authored-by: ImgBotApp <[email protected]>

* Refactored code from using momentjs to date-fns.

Removed moment and @date-io/moment (this one is for
Material-UI pickers) from the codebase.

* Removed console.log statement in PointsPage/point_display.js.

* Changed react-scripts version from ^3.4.2 back to 3.4.0.

^3.4.2 messed our CircleCI builds up.

* Take out outdated information in README. (#129)

* Onboards typescript for a single file (#128)

* Enable ts hotreloading.

* Hot reload needs to be prod dep :c

* Fix lint

* Add ts dependency

* Convert index to tsx.

tsconfig.paths.json is required because CRA does not support path
aliases.

* Setup eslint to work with typescript and suppress linting errors.

* Move react types to dep instead of dev dep.

* Convert to default import

* eslint

* Get eslint to run on ts files.

* Storybook (#131)

* Add ts dependency

* Enable ts hotreloading.

* Hot reload needs to be prod dep :c

* Add ts dependency

* Add dependencies.

* Onboard single storybook story for button.

* Fix errors.

* Fix glob in precommit hook.

* Fix react-scripts version.

* Fix react-scripts versioning.

* Fix material-table dep.

* Onboard initial openapi client code (#134)

* Add dependencies + cmd for codegen

* Add generated code.

* Add all path aliases to ts. (#136)

* Add all path aliases to ts.

* Drop contexts wildcard.

* WIP: openapi generated code integration (#138)

* test integration.

* Add all path aliases to ts. (#136)

* Add all path aliases to ts.

* Drop contexts wildcard.

* Changed url to make request to backend to the correct one.

Co-authored-by: Thai <[email protected]>

* Moved @typescript-eslint/parser to dev to hopefully fix deploy

* Made changes so auth on openapi schema works. (#143)

* Made changes so auth on openapi schema works.

Now requests that require BE to check token will be sent with
Bearer JWT from FE as a token.

* Made changes based on review on PR #143

* Okay actual changes reflecting review on PR #143.

* SignUp Page small screen fix. (#144)

* Add autochanged tsconfig.

* Make signup page responsive.

* Drop minWidth on dropdowns to prevent overflow.

* Public page layout component (#146)

* Make document body fill viewport.

* Add PublicPageLayout component with story.

* Update pages to use public page layout.

Not even going to think about touching SignUpPage

* Add spacing so content is not squished on mobile.

* Event API integration complete (#145)

* Got a lot of event api integration done, but not all.

Still event edit page left, probably the trickiest one of them all.
Other than that not sure if there is anything else that uses event
services (if there are then we can refactor with the new event api
functions).

Just set up the user api functions file, have not done any integration
for user api.

* Added autocompletion component

* Finished with integration for event edit page.

* Added changes to address review of PR #145.

* Removed duplicate config to turn off import/prefer-default-export.

* Just for deploy preview.

* Change api url to be through https for prod. (#150)

* Change to new api-url. (#151)

We should change this to be loaded from an env_var soon.

* Abstract away card component. (#154)

* Add Card component with story.

* Replace card usage throughout codebase. (EventDetails is messed up.)

* Add prop passthrough to Card.

* Fix EventDetails component.

* Add title prop to card.

* Refactor usage of CardHeader.

* Change Card export syntax.

* Added email verification to signup workflow, integrated auth api from backend. (#153)

* Added email verification to signup workflow, integrated auth api from backend.

Now frontend just needs to call createNewUser() from
src/services/AuthService to start the signup workflow, then finishes it
off with email verif. being handled in frontend.

* Added try catch for calls to a firebase service in signup's handleSubmit.

* Fixed duplicate imports in SignUpPage.

* Add card with vertical tabs. (#156)

* Add card with vertical tabs.

* Add border, grid, remove ripple.

* Replace match.params as props with hooks (#155)

* Install react-router types.

* Migrate EventDetailsPage to useParam hook + typescript.

* Migrate EventSignInForm to useParam hook + typescript.

* Migrate EventRsvpPage to useParam hook + typescript.

* Migrate EventEditPage to useParam hook + typescript.

* Migrate ProfilePages to hooks + useParams hook.

* Add yup typing.

* Add @types to dependencies instead of devDep.

@types should be in dev dep to prevent build size bloat, but somehow
netlify builds fail when @types are not deps.

* Modify CardProps to take in className.

* Change pages to use new Card component.

* Make className optional for cards.

* Migrate App + Context to Typescript (#158)

* Add react-router-dom types.

* Changes App + contexts to ts.

* Add types for react-router-dom.

* Fix prop typing.

* Added create event button, page and form (#162)

* Tsconfig changes again : (

* Added create event button, page and form.

* Took out most usages of process.env and replaced with config file. (#161)

* Took out most usages of process.env and replaced with config file.

Except for src/ServiceWorker.js and ./cypress/plugins because I don't
think it's a super good idea to change anything in those.

* Made changes based on review+discussions from PR #161.

* UserContextValues's userRole in App now uses backend api to get user's role (#164)

* UserContextValues's userRole in App now uses backend api to get user's role.

It used to get the roles from firebase custom claims.

* Add fixes.

* Remove unused function.

Co-authored-by: gypang <[email protected]>

* Create Event now works properly and as intended.  (#165)

* Tsconfig changes again : (

* Fixed merge issue

* Create Event now works properly and as intended.

After creating an event, the browser redirects to the newly created
event's EventDetails page.

Note that fbURL and canvaURL both have to either be empty or filled
out with a proper URL string, otherwise a status code 400 will be
sent from the backend server.

* Added url validation to create event form's schema's fbURL + canvaURL.

* Changed process.env in src/index.js to using config.

* Add alert for successful sign up. (#170)

* Put an alert for successful sign up.

* Retrigger GH checks on PR #169.

* Fixed some stuff and added minor changes requested during demo. (#167)

* Automatic rsvp + sign in buttons for affiliates on event details page (#168)

* Added automatic rsvp + sign in buttons for affiliates.

* Merged master into rsvp_signin_buttons.

* Added docs for path alias, date-fns and directory structure. (#171)

* Fix location string overflow (#175)

* Implement event check off functionality (#180)

* Set up functions to view attendances and check off attendance using codegen

* Fix DeleteEditButtons CSS.

* Redesign event page layout.

* Fix EventDetails text overflow.

* Finish implementing event check off functionality

Co-authored-by: gypang <[email protected]>

* Change event location to dynamic text/url (#185)

* Dynamic link for location in EventDetailsPage, always link for CalendarPage

* Implemented dynamic location/url in EventDetails and CalendarPage

* Fixed eslint issues on GetLocation

* Limit checkoff to attendees only. (#189)

* Fix ugly type casting for startTime in CheckOffTable (#190)

* Add codgen for points. (#193)

* Add alert on event sign in. (#187)

* Remove inductee polling on event page. (#188)

* Remove inductee polling on Event page.

* Fix props.

* Display induction requirements for user. (#194)

* Update points page to be compatible with new API.

* Display error message on no points.

* Add authentication + security for page.

* Update cypress test to use new points endpoint.

* Integrate inductee points page with new api. (#196)

* Add export button to table for inductee points. (#197)

* Move calendar weeks to start on Mondays. (#195)

* Add link button to inductee points table. (#198)

Adds a button to link to detailed view of inductee points.

* Add Interview Scheduling Page (#191)

* Interview scheduling WIP

* Add interview scheduling endpoint + functionality and temporary UI

* Make changes that were discussed/suggested in PR #191

* Add preloading existing user schedule for the schedulers (WIP)

* Get preloading existing dates to work on mock data and fix the code to
split schedule by week

* Add constraint where user has to pick 8 interview times before being
able to submit

* Update code autogen.

* Integration with backend.

* Add to NavBar.

Co-authored-by: gypang <[email protected]>

* Add token refresh to solve empty token. (#199)

Hopefully this will solve the issue of empty event sign ins.
Sign ins had empty names - suspected root cause is that tokens weren't
getting refreshed and thus sign ins were having empty names.

* Add integration for query params for getMultipleEvents (#203)

* Add integration for query params for getMultipleEvents

* Change init value for pending, ready, complete to true

* Add integration for affiliate event signin/rsvp endpoints (#202)

* Run codegen to reflect payload changes from backend (no other changes)

* Disallow event signin/rsvp for pending+complete events for non-officers (#204)

* Disallow event signin/rsvp for pending+complete events for non-officers

* Remove role checking for disabling event signin/rsvp buttons

* Combine event signin/rsvp buttons into 1 Grid container

* Remove resume page. (#206)

* Add CardWithVerticalTabs, with 3 tables to check off, view attendances, and view RSVPs (#211)

The Attendance/RSVP/Checkoff table is ready to be released. Most of the CSS stuff is fixed except for one where when the browser is at half-screen, the table goes under the tabs themselves. We plan to eventually address this, but for now we'll leave it there for later. Attached is a picture of the CSS bug.

* Integrate FE circleCI config.yml into BE circleCI config.yml

Co-authored-by: gypang <[email protected]>
Co-authored-by: Eric Ke <[email protected]>
Co-authored-by: Aimee Shao <[email protected]>
Co-authored-by: Frank Ye <[email protected]>
Co-authored-by: imgbot[bot] <31301654+imgbot[bot]@users.noreply.github.com>
Co-authored-by: ImgBotApp <[email protected]>
Co-authored-by: AimeeShao <[email protected]>
godwinpang pushed a commit that referenced this issue Mar 13, 2021
This is so that the dropdowns can have their specific characteristics,
while still allowing users to customize them.
godwinpang pushed a commit that referenced this issue Mar 18, 2021
This is so that the dropdowns can have their specific characteristics,
while still allowing users to customize them.
godwinpang added a commit that referenced this issue Mar 18, 2021
* Adds dx-react-scheduler dependencies for calendar.

* Adds route for CalendarPage with sidebar link. Temporarily routes to ResumePage.

* Solves dependency issue that prevented app startup.
facebook/create-react-app#8499

* Adds calendar page to events.

* Adds component based development guide with testing instructions.

* Adds development guides.

* Patch claims to be lowercase.

* Adds removed Calendar route.

* EventDetails implemented

* Firebase Refactor (#44)

* fix returns to be objects instead of queries

* separation of functions initial

* setup temp

* removed withFirebase completely

* fix imports and remove extra

* initial event editing

* Fixed bug for EventDetailsPage/EventDetailsComponent with temporary solution and finished both EventDetailsPage and EventDetailsComponent as well, will now be looking at how to improve how the page looks.

* Added Links component on /test route

* QOL changes for Navbar.

Fixes previous bug where developers had to hardcode a marginTop offset
in pages. Refactor Navbar to reduce code duplication.

* Refactors user doc functions to take in uid.

* Changes context to pass down object instead of just the keys.

* Adds hotfix for non persistent signin state.

* Made changes to how EventDetailsComponent looks

* QOL changes for Navbar.

Fixes previous bug where developers had to hardcode a marginTop offset
in pages. Refactor Navbar to reduce code duplication.

* Refactors user doc functions to take in uid.

* Changes context to pass down object instead of just the keys.

* Fixes Auth to pass down props.

* Fixes tabs to take in uids.

* Adds export for getUserDocument

* Done with EventDetailsPage and EventDetailsComponent, including how they look (can definitely be improved in the future. Also included the firebase function that gets event documents by ID from events Collection

* event editing form

* styling fixes

* Firebase Refactor (#44)

* fix returns to be objects instead of queries

* separation of functions initial

* setup temp

* removed withFirebase completely

* fix imports and remove extra

* initial event editing

* event editing form

* styling fixes

* temp unlink

* refactor component page org

* eventList Skeleton

* switch between views

* ui updates

* style updates and passing events from calendarpage to eventlist

* database call and cleanup

* add new component and form hosts field working

* styling refactoring

* fix proptypes on form

* onChange fixes and notes

* decoupling

* Refactored EventDetails to using mostly <Grid> from material.ui, with one div left, which should be fine. The change for HOCs from singleton to context has not been done, however, so do keep that in mind if you plan to use the current Auth/Perm HOCs

* Finished implementing a solution for role-based rendering of components and routing to pages using React context. Also finished refactoring EventDetails from using all divs to using mostly Material.ui's <Grid>

* Fixed up <Grid> in EventDetails, changed the comments in RenderByContextPerm.js RoutingByContextPerm.js, finished the confirmation modal for EventDetails, and removed the TestPage folder

* Revert "Fixes tabs to take in uids."

This reverts commit cc11f0e.

* Update index.js

* Resolve merge conflict on reverting context changes.

* cleanup

* Delete yarn.lock

Not sure why there's a yarn file since we're using npm...

* Minor changes to EventDetails's styles.js, EventCard now takes the id from the event being clicked on in Calendar instead of having a hardcoded id for the URL to EventDetailsPage

* change from date to timestamps

* Update issue templates

* CircleCi Project Setup (#52)

* Add .circleci/config.yml

* Updates eslintrc to ignore Cypress.

* Allows tests to pass with no tests ;)

* Update CODEOWNERS

* Adds stuff to run cypress tests (#53)

* Removes example tests.

* Adds support for running cypress through npm.

* Setup Cypress to not take screenshots and videos on test failure.

* Refactor tests to take in testing credentials using dotenv.

* Update Circleci config to run Cypress tests.

* react-app-rewired can't be dev dep.

* Customize-cra can't be dev dep either...

* Fixes bug with https due to react-scripts.

More info: facebook/create-react-app#8079

* Adds netlify toml file to fix routing. (#54)

* Adds netlify status.

* Fixes packages from npm audit. (#55)

* Revert "Fixes packages from npm audit. (#55)"

This reverts commit ba7fc9b. Breaks
react-scripts :(

* style

* Adds circleci.

* Refactored the use of timestampToDate and datetoTimestamp so they are now only used in src/services/events.js and not in src/pages/EventEditPage/event_edit.js

* Fixed up things caught by ESLint, which includes PropTypes, function call used before function declaration and function body, unused imported components, and unused non-empty parameters for arrow functions

* Added react-app-rewired as a dependency in package.json

* Removed react-app-rewired from devDependencies in package.json

* Pulling from events branch

* Made sure that everything still works after updating environment variables

* Minor changes to cypress.json so events is good

* Update package.json

* Test run for CircleCI with different cypress version

* Pin react-scripts version.

react-scripts 3.4.1 breaks running inside docker containers.
See: facebook/create-react-app#8688

* Finished the frontend of the sign up page, besides making HTTP requests to send in inputted data from the user to the db (need to wait for backend on that first)

* Forgot to integrate the cypress+circleci bug fix lol mb

* Minor fixes to the front end of this new sign up page (first name field) and added the fix for the cypress+CircleCI bug

* Removed binding statement for handleState in <SignUpPage /> in src/pages/SignUpPageNew

* Test run for CircleCI with different cypress version

* Finished the frontend of the sign up page, besides making HTTP requests to send in inputted data from the user to the db (need to wait for backend on that first)

* Minor fixes to the front end of this new sign up page (first name field) and added the fix for the cypress+CircleCI bug

* Removed binding statement for handleState in <SignUpPage /> in src/pages/SignUpPageNew

* Finish merging master with newSignupPage

* Fixed minor bugs relating to proptypes and props, now just the buggy EventsPage left (might have to take it out or rewrite it completely)

* Added major dropdown and generic year dropdown for Formik's <Field />.
These two dropdown components can be put into the component prop of
Formik's <Field /> i.e. <Field component={MajorDropdown}.

Note that year dropdown needs to be supplied a minyear and a maxyear
prop for it to work properly.

Ex: <Field component={YearDropdown} minyear={#} maxyear={#} />

* Added capitalization to 'startDate' and 'endDate' column title in
List view of the calendar.

* Added most changes commented on PR #75.

I've added most of the changes commented on the PR,
but I left out styles.js in SignUpPageNew since I can't
make things look nice without lots of hardcoded margins
and paddings for <Card />, as opposed to <Grid />.

Changes:
  - Got rid of !! and ?? operators in the dropdown files
  - Put schema in a separate file (schema.js)
  - Added index.js in dropdowns to export both major and
    year dropdowns with 1 import statement.
  - Put in proper changes for <Grid /> in SignUpForm so
    things look better now and I got rid of most of the
    hardcoded margins and paddings for styles.js.
  - Added clarification to what getIn() does as comments
    in the dropdown files.

* Made more changes in terms of caps and <Grid />.

Changes:
  - <Grid component item /> now becomes:
      <Grid item>
        <Grid component>
          ...
        </Grid>
      </Grid>
  - Changed schema name from VALIDATION_SCHEMA to just 'schema'

* Fix casing for dropdowns.

* Modified major and year dropdowns so they use Formik's <Field />.

I changed major and year dropdowns so they use Formik's <Field />
so that we don't have to use formik-material-ui's <TextField />
code to make a custom MajorDropdown or YearDropdown. This is to
prevent possible compatibility issue in the future.

* Changed all instances of theme.spacing.unit to theme.spacing().

* Added sort by DateTime to the List view of Calendar.

* Refactored dateTimeSort() into eventDateComparator().

eventDateComparator takes two event objects and a boolean to
indicate whether we want to compare by start or end date.

* Refactored eventDateComparator() so it looks cleaner.

* Added major and year dropdowns to use with forms made with Formik.

* Modified both dropdowns so that they allow props to bubble down.

This is so that the dropdowns can have their specific characteristics,
while still allowing users to customize them.

* Modified both dropdowns so that they allow props to bubble down. (#86)

This is so that the dropdowns can have their specific characteristics,
while still allowing users to customize them.

* Removed the redundant MajorDropdown and YearDropdown folders. (#87)

Messed up on merging the PR for MajorDropdownField and YearDropdownField
so both MDF/YDF and MD/YD appeared in the dropdowns folder. Since
MDF/YDF is the newer version, remove MD/YD.

* Cleaned up how readOnlyProps is handled.

readOnlyProps is now just an object with key-value pairs with
no nested objects (had a nested object before).

* Moved fetch call to /signup in SignUpPageNew to services/auth.

This is to ensure that layer abstraction is maintained, so that
frontend SignUpPageNew doesn't know what we are doing for the
sign up process.

* Added 'lint_prettier' job, which is made from 'lint' job.

lint_prettier first runs 'npm run lint', then it runs
'npx prettier --check ./src/**/*.ts' to see if all Typescript
files follow Prettier's style rules. If there are files that
do not follow Prettier's style rules, lint_prettier will fail.
Note that --check will show Typescript files that do not follow
Prettier's style rules.

lint_prettier has to succeed for cypress/run to start.

* Changed npx prettier --check ./src/**/*.ts to ./src/**/*.js.

* Added endpoints.js to store endpoint constants for API fetch calls.

endpoints.js is in src/constants. Since I made this branch from master,
there isn't a place where I can use the API's base url (an environment
variable) with an endpoint constant to make a fetch call(), so yeah
this is gonna be a short PR (I can do this in newSignupPage branch,
but the PR for that is already so bloated I don't want to add more).

And also, to be frank, the biggest change for this PR is in .env, so
that's also why this is such a short PR.

* Added base API url as an env var.

* Ran Prettier to make sure everything complies with Prettier code style.

* Removed old signup page and put in new sign up page.

Removed everything for the old signup page and put in the new
signup page as the current signup page. Removed new signup page
test endpoint from App/index.js and constants/routes.js.

* Added BaseModal, ConfirmModal and AlertModal.

BaseModal is made using MUI's Dialog components. ConfirmModal
and AlertModal use BaseModal for their implementation. Not
sure if ConfirmModal and AlertModal are made in the best way
possible so if someone can check that that would be very
helpful.

I used our own Button component, made by Godwin.

DeleteEditButtons's modal now use ConfirmModal. This was done
as an example to display these new Modals. This modal should
be identical to the previous one written straight into
DeleteEditButtons's index file.

Also, screw PropTypes.

* Changed BaseModal and created ButtonWithModal.

BaseModal's opening and closing now relies on the useState hook
in ButtonWithModal. ButtonWithModal is just a modal with a button
that can be used to open that modal.

In addition to that, ConfirmationModalWithButton and
AlertModalWithButton are also created using ButtonWithModal.
ConfirmationModalWithButton is basically a two-choice modal with
a button to open it. AlertModalWithButton is a modal with only
one action.

* Changed things based on latest comments on PR.

Inlined handleOpen and handleClose in ButtonWithModal. Made it so
that the cancel/close buttons for ConfirmationModalWithButton and
AlertModalWithButton only close the modal and nothing else. Made
cancel/close button on the left and confirm button on the right
for ConfirmationModalWithButton.

* Changed naming and props for things in modals folder.

* Changed name of AlertModalWithButton to ButtonWithAlertModal.

This is to conform with ButtonWithConfirmationModal.

* ProfilePage + Edit (#108)

* Modify input field to return Formik Field on non readonly.

* Adds buttons

* Fix button children to display text.

* Add formlayout API + formSections.

* Add Profile+Edit pages w/o integrations.

I don't want to integrate when we're throwing stuff into Postgres.

* One way of reorganizing our file structure.

Put all components belonging only to one page to that page's component
folder. Components that are and can be used by more than one page and/or
components from a different page should be put in the top-level components
folder.

* Messed up by not fixing all the filepaths due to moving files/folders.

Everything is now fixed (hopefully).

* Added path aliasing for all of ./src's folders and src itself.

All the path aliases are defined in config-overrides.js. I have
changed the filepaths of import statements that I think needed
to use the defined path aliases.

* Navigating to invalid enpoints now redirects to the home page.

If not logged in, then redirect to login page. If logged in, then
redirect to home page.

* Capitalized all path aliases and added index.js to components + pages.

src/components and src/pages now have index.js files to have the ability
to conveniently import the components and the pages via just one import
statement. Fixed any circular dependency as well (I think so, linter
stops giving any circular dependency error now). Fixed import statements
to use those folders' index files as well, when applicable.

* Made changes to accomodate the newly added profile + edit pages.

Added path aliases for profile + edit pages. Added FormLayout to
src/components' index file.

* Using Route's render prop instead of component prop for src/pages/App.

* Replaced @src (./src) with @contexts (./src/contexts).

Since we don't export any other file in top-level src folder other
than ./src/contexts.js, make a path alias for contexts.js instead
so whenever we want to use React contexts, just import from
'@contexts'.

* Added import statement accidentally removed from merging process.

* Added import/order rules to auto rearrange our imports.

I ran 'npm run lint' but didn't really see things change. Idk if
that's just because the files I checked were already in the correct
import style, or it just didn't work... Also, had to put it in
"settings" instead of having it be a top-level "import/order" rule,
even though "eslint-plugin-import" docs on "import/order" seems
to indicate that it could be top-level.

* Put "import/order" in "rules" instead of "settings" in .eslintrc.

I didn't know where to put it before, so I just put "import/order" in
"settings". That didn't work so I put it in "rules" instead and it works
now.

Also had to make customize-cra a dependency instead of a devDependency
or else eslint won't let me commit.

* Removed ClaimsSingleton, used UserContext for conditional render/routing

The file ./src/services/claims.js is removed completely. The
AuthUserContext is now called UserContext. UserContext contains an
object (userClaims) that has user_id (the user's ID obtained from user's
Firebase claims) and userRoles (all of the user's roles from user's
Firebase claims) fields. This UserContext is use in
./src/HOCs/*Authorization.js for role-based rendering and routing.

App.js now passes down the setClaims function to SignUpPage as well, so
that the userClaims state in App.js gets updated with the user_id and
userRoles from the logged in user.

No code uses ClaimsSingleton or its other functions (isOfficer,
isMember, isInductee) anymore.

* Made changes based on comments left on PR #116

Changed user_id to userId in App.js, put getRolesFromClaims in
services/claims.js and made functions isAnOfficer(userContext),
isAMember(userContext) and isAnInductee(userContext) in
services/claims.js as well.

* Changed all pages that didn't use UserContext to using them.

PointsPage now use UserContext to check if a user is a member (aka
member or officer) or not. InducteePointsPage now doesn't even
check for roles, since routing HOC limited access to just officers
already.

Fixed up InducteePointsPage so that it works now because the db
migration broke a lot of the service functions that we have.

* Changed newlines-between rule of import order to "always".

* Added EvenSignInPage and EventSignInForm, still WIP

* Fixed errors resulting from merge conflicts.

* Added event signin page on endpoint /events/:id/signin. Still WIP.

* Added changes agreed upon in the dev meeting.

- Changed checkbox's color to blue (was originally red).
- Removed the button on EventCard to get to signin form and
  put the link into <Links/> in EventDetailsComponent.
- Changed Grid's spacing to all 4 for EventSignInPage and
  EventSignInForm.

* Added a generic dropdown and gave it a readOnly option.

Major+Year dropdowns are built from the generic dropdown. Just pass in
readOnly as a prop to major+year dropdowns to get their read-only
version (remember to set a value to the read-only dropdown as well
for them to display values).

* BaseDropdown now uses props.selections instead of props.children.

Affiliate, Major and Year dropdowns now pass their respective arrays
of choices through selections prop to GenericDropdownField.

* Changed from props.children to props.selections for consistent type.

* Added RSVP form, which is currently identical to the sign in form.

This form is expected to have more input fields, but until we get
to that, this is more than good enough.

* [ImgBot] Optimize images (#124)

*Total -- 200.31kb -> 77.72kb (61.2%)

/src/images/hkn-logo-black.png -- 189.98kb -> 71.89kb (62.16%)
/src/images/hkn-trident.png -- 10.33kb -> 5.82kb (43.64%)

Signed-off-by: ImgBotApp <[email protected]>

Co-authored-by: ImgBotApp <[email protected]>

* Refactored code from using momentjs to date-fns.

Removed moment and @date-io/moment (this one is for
Material-UI pickers) from the codebase.

* Removed console.log statement in PointsPage/point_display.js.

* Changed react-scripts version from ^3.4.2 back to 3.4.0.

^3.4.2 messed our CircleCI builds up.

* Take out outdated information in README. (#129)

* Onboards typescript for a single file (#128)

* Enable ts hotreloading.

* Hot reload needs to be prod dep :c

* Fix lint

* Add ts dependency

* Convert index to tsx.

tsconfig.paths.json is required because CRA does not support path
aliases.

* Setup eslint to work with typescript and suppress linting errors.

* Move react types to dep instead of dev dep.

* Convert to default import

* eslint

* Get eslint to run on ts files.

* Storybook (#131)

* Add ts dependency

* Enable ts hotreloading.

* Hot reload needs to be prod dep :c

* Add ts dependency

* Add dependencies.

* Onboard single storybook story for button.

* Fix errors.

* Fix glob in precommit hook.

* Fix react-scripts version.

* Fix react-scripts versioning.

* Fix material-table dep.

* Onboard initial openapi client code (#134)

* Add dependencies + cmd for codegen

* Add generated code.

* Add all path aliases to ts. (#136)

* Add all path aliases to ts.

* Drop contexts wildcard.

* WIP: openapi generated code integration (#138)

* test integration.

* Add all path aliases to ts. (#136)

* Add all path aliases to ts.

* Drop contexts wildcard.

* Changed url to make request to backend to the correct one.

Co-authored-by: Thai <[email protected]>

* Moved @typescript-eslint/parser to dev to hopefully fix deploy

* Made changes so auth on openapi schema works. (#143)

* Made changes so auth on openapi schema works.

Now requests that require BE to check token will be sent with
Bearer JWT from FE as a token.

* Made changes based on review on PR #143

* Okay actual changes reflecting review on PR #143.

* SignUp Page small screen fix. (#144)

* Add autochanged tsconfig.

* Make signup page responsive.

* Drop minWidth on dropdowns to prevent overflow.

* Public page layout component (#146)

* Make document body fill viewport.

* Add PublicPageLayout component with story.

* Update pages to use public page layout.

Not even going to think about touching SignUpPage

* Add spacing so content is not squished on mobile.

* Event API integration complete (#145)

* Got a lot of event api integration done, but not all.

Still event edit page left, probably the trickiest one of them all.
Other than that not sure if there is anything else that uses event
services (if there are then we can refactor with the new event api
functions).

Just set up the user api functions file, have not done any integration
for user api.

* Added autocompletion component

* Finished with integration for event edit page.

* Added changes to address review of PR #145.

* Removed duplicate config to turn off import/prefer-default-export.

* Just for deploy preview.

* Change api url to be through https for prod. (#150)

* Change to new api-url. (#151)

We should change this to be loaded from an env_var soon.

* Abstract away card component. (#154)

* Add Card component with story.

* Replace card usage throughout codebase. (EventDetails is messed up.)

* Add prop passthrough to Card.

* Fix EventDetails component.

* Add title prop to card.

* Refactor usage of CardHeader.

* Change Card export syntax.

* Added email verification to signup workflow, integrated auth api from backend. (#153)

* Added email verification to signup workflow, integrated auth api from backend.

Now frontend just needs to call createNewUser() from
src/services/AuthService to start the signup workflow, then finishes it
off with email verif. being handled in frontend.

* Added try catch for calls to a firebase service in signup's handleSubmit.

* Fixed duplicate imports in SignUpPage.

* Add card with vertical tabs. (#156)

* Add card with vertical tabs.

* Add border, grid, remove ripple.

* Replace match.params as props with hooks (#155)

* Install react-router types.

* Migrate EventDetailsPage to useParam hook + typescript.

* Migrate EventSignInForm to useParam hook + typescript.

* Migrate EventRsvpPage to useParam hook + typescript.

* Migrate EventEditPage to useParam hook + typescript.

* Migrate ProfilePages to hooks + useParams hook.

* Add yup typing.

* Add @types to dependencies instead of devDep.

@types should be in dev dep to prevent build size bloat, but somehow
netlify builds fail when @types are not deps.

* Modify CardProps to take in className.

* Change pages to use new Card component.

* Make className optional for cards.

* Migrate App + Context to Typescript (#158)

* Add react-router-dom types.

* Changes App + contexts to ts.

* Add types for react-router-dom.

* Fix prop typing.

* Added create event button, page and form (#162)

* Tsconfig changes again : (

* Added create event button, page and form.

* Took out most usages of process.env and replaced with config file. (#161)

* Took out most usages of process.env and replaced with config file.

Except for src/ServiceWorker.js and ./cypress/plugins because I don't
think it's a super good idea to change anything in those.

* Made changes based on review+discussions from PR #161.

* UserContextValues's userRole in App now uses backend api to get user's role (#164)

* UserContextValues's userRole in App now uses backend api to get user's role.

It used to get the roles from firebase custom claims.

* Add fixes.

* Remove unused function.

Co-authored-by: gypang <[email protected]>

* Create Event now works properly and as intended.  (#165)

* Tsconfig changes again : (

* Fixed merge issue

* Create Event now works properly and as intended.

After creating an event, the browser redirects to the newly created
event's EventDetails page.

Note that fbURL and canvaURL both have to either be empty or filled
out with a proper URL string, otherwise a status code 400 will be
sent from the backend server.

* Added url validation to create event form's schema's fbURL + canvaURL.

* Changed process.env in src/index.js to using config.

* Add alert for successful sign up. (#170)

* Put an alert for successful sign up.

* Retrigger GH checks on PR #169.

* Fixed some stuff and added minor changes requested during demo. (#167)

* Automatic rsvp + sign in buttons for affiliates on event details page (#168)

* Added automatic rsvp + sign in buttons for affiliates.

* Merged master into rsvp_signin_buttons.

* Added docs for path alias, date-fns and directory structure. (#171)

* Fix location string overflow (#175)

* Implement event check off functionality (#180)

* Set up functions to view attendances and check off attendance using codegen

* Fix DeleteEditButtons CSS.

* Redesign event page layout.

* Fix EventDetails text overflow.

* Finish implementing event check off functionality

Co-authored-by: gypang <[email protected]>

* Change event location to dynamic text/url (#185)

* Dynamic link for location in EventDetailsPage, always link for CalendarPage

* Implemented dynamic location/url in EventDetails and CalendarPage

* Fixed eslint issues on GetLocation

* Limit checkoff to attendees only. (#189)

* Fix ugly type casting for startTime in CheckOffTable (#190)

* Add codgen for points. (#193)

* Add alert on event sign in. (#187)

* Remove inductee polling on event page. (#188)

* Remove inductee polling on Event page.

* Fix props.

* Display induction requirements for user. (#194)

* Update points page to be compatible with new API.

* Display error message on no points.

* Add authentication + security for page.

* Update cypress test to use new points endpoint.

* Integrate inductee points page with new api. (#196)

* Add export button to table for inductee points. (#197)

* Move calendar weeks to start on Mondays. (#195)

* Add link button to inductee points table. (#198)

Adds a button to link to detailed view of inductee points.

* Add Interview Scheduling Page (#191)

* Interview scheduling WIP

* Add interview scheduling endpoint + functionality and temporary UI

* Make changes that were discussed/suggested in PR #191

* Add preloading existing user schedule for the schedulers (WIP)

* Get preloading existing dates to work on mock data and fix the code to
split schedule by week

* Add constraint where user has to pick 8 interview times before being
able to submit

* Update code autogen.

* Integration with backend.

* Add to NavBar.

Co-authored-by: gypang <[email protected]>

* Add token refresh to solve empty token. (#199)

Hopefully this will solve the issue of empty event sign ins.
Sign ins had empty names - suspected root cause is that tokens weren't
getting refreshed and thus sign ins were having empty names.

* Add integration for query params for getMultipleEvents (#203)

* Add integration for query params for getMultipleEvents

* Change init value for pending, ready, complete to true

* Add integration for affiliate event signin/rsvp endpoints (#202)

* Run codegen to reflect payload changes from backend (no other changes)

* Disallow event signin/rsvp for pending+complete events for non-officers (#204)

* Disallow event signin/rsvp for pending+complete events for non-officers

* Remove role checking for disabling event signin/rsvp buttons

* Combine event signin/rsvp buttons into 1 Grid container

* Remove resume page. (#206)

* Add CardWithVerticalTabs, with 3 tables to check off, view attendances, and view RSVPs (#211)

The Attendance/RSVP/Checkoff table is ready to be released. Most of the CSS stuff is fixed except for one where when the browser is at half-screen, the table goes under the tabs themselves. We plan to eventually address this, but for now we'll leave it there for later. Attached is a picture of the CSS bug.

* Integrate FE circleCI config.yml into BE circleCI config.yml

Co-authored-by: gypang <[email protected]>
Co-authored-by: Eric Ke <[email protected]>
Co-authored-by: Aimee Shao <[email protected]>
Co-authored-by: Frank Ye <[email protected]>
Co-authored-by: imgbot[bot] <31301654+imgbot[bot]@users.noreply.github.com>
Co-authored-by: ImgBotApp <[email protected]>
Co-authored-by: AimeeShao <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dev experience Focus on enhancing developer experience
Projects
None yet
Development

No branches or pull requests

1 participant