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

refactor: make drawer component #189

Merged
merged 7 commits into from
Sep 13, 2024
Merged

refactor: make drawer component #189

merged 7 commits into from
Sep 13, 2024

Conversation

fvcci
Copy link
Contributor

@fvcci fvcci commented Sep 7, 2024

Lots of duplicate code for implementing drawers on different pages. This change centralizes all Drawer related code to the Drawer component. Also some minor code cleanup.

Changes

  • decoupling Drawer from various pages
  • moved Drawer component from NavBar.jsx to Drawer.jsx
  • Application popup button text from "View Application" to "View"
  • Dependency cleanup

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

    • Introduced a responsive navigation Drawer component for improved user navigation and session management.
    • Enhanced user experience with streamlined navigation links and a theme toggle feature.
  • Bug Fixes

    • Updated button text from "View Application" to "View" for clarity.
  • Refactor

    • Simplified the NavBar component by removing the drawer functionality.
    • Restructured several pages to utilize the new Drawer component for consistent navigation and improved layout organization.
  • Chores

    • Cleaned up import statements across multiple files for better organization and maintainability.

Copy link
Contributor

coderabbitai bot commented Sep 7, 2024

Walkthrough

The recent changes involve a significant refactor of the user interface components within the application, primarily focusing on the introduction of a new Drawer component. This component serves as a responsive navigation drawer, enhancing the organization of navigation and layout throughout various pages. The NavBar component has been simplified, with its drawer functionality removed and replaced by the Drawer, which now encapsulates user session management, navigation links, and a theme toggle feature.

The Drawer component is designed to accept children and an optional array of page tabs, allowing for dynamic navigation links. Additionally, several pages have undergone modifications in their component imports, transitioning from named imports of Drawer from NavBar to direct default imports from the new Drawer component file. This restructuring aims to streamline the codebase, improve modularity, and enhance maintainability across the application.

Overall, the changes reflect a shift towards a more cohesive and organized component architecture, with a focus on utilizing the Drawer for navigation while simplifying the overall structure of various components.

Changes

Files Changed Change Summary
src/components/Applicant.tsx Button text changed from "View Application" to "View".
src/components/Drawer.tsx Introduced a new Drawer component for responsive navigation, user session management, and dynamic routing. Added props for children and pageTabs, and defined PageTab interface.
src/components/NavBar.tsx Removed the Drawer component and simplified the NavBar to focus solely on navigation links and user session status.
src/pages/apply.tsx Updated import statement for Drawer from NavBar to direct import from Drawer.
src/pages/checkin.tsx Integrated the new Drawer component, removing the previous drawer structure and simplifying the layout.
src/pages/dashboard.tsx Removed Background, NavBar, and ThemeToggle components; integrated the Drawer for navigation.
src/pages/grade.tsx Replaced previous drawer structure with the new Drawer component for navigation.
src/pages/killswitch.tsx Changed import of Drawer from NavBar to direct import from Drawer, removed unused imports.
src/pages/me.tsx Replaced previous layout with the Drawer component, removing Background and NavBar.
src/pages/scanner.tsx Replaced Background and NavBar with Drawer, simplifying the layout.
src/pages/schedule.tsx Changed import of Drawer from NavBar to direct import; removed unused imports.
src/pages/welcome.tsx Updated import of Drawer from NavBar to direct import from Drawer.

Poem

In a world of code, where rabbits play,
A drawer now shines, brightening the way.
With buttons that beckon, and tabs that align,
Our paths are now clearer, oh how they shine!
So hop with delight, as we navigate free,
In this wondrous new space, come dance with me! 🐇✨


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

netlify bot commented Sep 7, 2024

Deploy Preview for profound-kringle-30b3e4 ready!

Name Link
🔨 Latest commit 9273b0d
🔍 Latest deploy log https://app.netlify.com/sites/profound-kringle-30b3e4/deploys/66dce186374478000810c2f5
😎 Deploy Preview https://deploy-preview-189--profound-kringle-30b3e4.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@fvcci fvcci changed the title Some miscellaneous code cleanup fix: some miscellaneous code cleanup Sep 7, 2024
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Outside diff range, codebase verification and nitpick comments (1)
src/pages/grade.tsx (1)

22-48: Empty "Review" link in Drawer component.

The "Review" link in the Drawer component's pageTabs prop is currently empty in the src/pages/grade.tsx file. This could lead to navigation issues. Please ensure that this link is correctly set to provide a seamless user experience.

  • Location: src/pages/grade.tsx, line 23
Analysis chain

Proper integration of the Drawer component.

The Drawer component is correctly used to manage the layout and navigation of the page. However, ensure that the link for the "Review" page is correctly set as it currently appears empty.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the link for the "Review" page.

# Test: Search for the usage of the "Review" link. Expect: A valid URL.
rg --type typescript -A 5 $'pageName: "Review", link: ""'

Length of output: 93


Script:

#!/bin/bash
# Description: Verify the link for the "Review" page with the correct file type.

# Test: Search for the usage of the "Review" link. Expect: A valid URL.
rg --type tsx -A 5 $'pageName: "Review", link: ""'

Length of output: 79


Script:

#!/bin/bash
# Description: Verify the link for the "Review" page without specifying the file type.

# Test: Search for the usage of the "Review" link. Expect: A valid URL.
rg -A 5 $'pageName: "Review", link: ""'

Length of output: 415

Tools
Biome

[error] 41-41: Missing key property for this element in iterable.

The order of the items may change, and having a key can help React identify which item was moved.
Check the React documentation.

(lint/correctness/useJsxKeyInIterable)

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 1d7859d and b6286bd.

Files selected for processing (12)
  • src/components/Applicant.tsx (1 hunks)
  • src/components/Drawer.tsx (1 hunks)
  • src/components/NavBar.tsx (2 hunks)
  • src/pages/apply.tsx (1 hunks)
  • src/pages/checkin.tsx (2 hunks)
  • src/pages/dashboard.tsx (2 hunks)
  • src/pages/grade.tsx (2 hunks)
  • src/pages/killswitch.tsx (1 hunks)
  • src/pages/me.tsx (3 hunks)
  • src/pages/scanner.tsx (2 hunks)
  • src/pages/schedule.tsx (2 hunks)
  • src/pages/welcome.tsx (1 hunks)
Files skipped from review due to trivial changes (4)
  • src/components/Applicant.tsx
  • src/pages/apply.tsx
  • src/pages/killswitch.tsx
  • src/pages/schedule.tsx
Additional context used
Biome
src/pages/grade.tsx

[error] 41-41: Missing key property for this element in iterable.

The order of the items may change, and having a key can help React identify which item was moved.
Check the React documentation.

(lint/correctness/useJsxKeyInIterable)

Additional comments not posted (10)
src/pages/grade.tsx (1)

7-7: Correct import statement for the Drawer component.

The import path and usage are correctly updated to reflect the new location of the Drawer component.

src/components/NavBar.tsx (1)

1-1: Removal of the Drawer component is appropriate.

The removal aligns with the PR objectives to simplify the NavBar and separate concerns. Ensure that all functionalities previously handled by the Drawer are now appropriately managed elsewhere in the application.

Verification successful

Functionalities previously handled by the Drawer component are appropriately integrated elsewhere.

The use of useSession and useRouter across multiple files confirms that session management and routing functionalities are managed throughout the application. This supports the decision to remove the Drawer component from the NavBar, aligning with the PR's objectives to simplify and separate concerns.

  • src/components/NavBar.tsx
  • src/pages/scanner.tsx
  • src/pages/dashboard.tsx
  • src/pages/me.tsx
  • src/pages/apply.tsx
  • src/pages/roles.tsx
  • src/pages/checkin.tsx
  • src/pages/login.tsx
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the integration of functionalities previously handled by the Drawer.

# Test: Search for the functionalities like theme toggle and session management. Expect: These functionalities are managed elsewhere.
rg --type typescript -A 5 $'useSession|useRouter'

Length of output: 85


Script:

#!/bin/bash
# Description: Verify the integration of functionalities previously handled by the Drawer.

# Test: Search for the functionalities like theme toggle and session management. Expect: These functionalities are managed elsewhere.
rg --type ts -A 5 $'useSession|useRouter'

Length of output: 11805

src/pages/welcome.tsx (1)

4-4: Correct update to the import statement for the Drawer component.

The change from a named import to a default import reflects the new structure of the Drawer component being in its own module. The import path is correctly updated.

src/components/Drawer.tsx (1)

1-12: Well-organized imports and interface definition.

The import statements are appropriate for the component's functionality, and the PageTab interface is correctly defined.

src/pages/me.tsx (1)

Line range hint 1-13: Appropriate use of imports and the Drawer component.

The import statements are relevant and well-organized. The usage of the Drawer component to centralize navigation and layout is correctly implemented, enhancing the maintainability and modularity of the component.

Also applies to: 50-111

src/pages/checkin.tsx (1)

1-12: Appropriate use of imports and the Drawer component.

The import statements are relevant and well-organized. The usage of the Drawer component to centralize navigation and layout is correctly implemented, enhancing the maintainability and modularity of the component.

Also applies to: 201-218

src/pages/scanner.tsx (2)

510-547: Approve the usage of Drawer and suggest verification of role-based logic.

The Drawer component is used effectively to encapsulate the main content and navigation. Verify that all role-based views are correctly rendered and accessible as intended.


13-13: Verify the integration of the Drawer component.

The import of Drawer from ../components/Drawer replaces the previously used Background and NavBar. Ensure that Drawer is correctly integrated and all functionalities previously handled by Background and NavBar are now adequately covered by Drawer.

Verification successful

Drawer component is correctly integrated in scanner.tsx.

The Drawer component is imported and used with the pageTabs prop, effectively replacing the previous layout components. This confirms the intended centralization of drawer-related code.

  • src/pages/scanner.tsx: Drawer is used with pageTabs for navigation.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the integration of the Drawer component in the scanner.tsx file.

# Test: Search for the usage of `Drawer` in the scanner.tsx file. Expect: Proper integration and replacement of old components.
rg --type tsx -A 5 $'Drawer' src/pages/scanner.tsx

Length of output: 77


Script:

#!/bin/bash
# Description: Verify the integration of the Drawer component in the scanner.tsx file.

# Locate the scanner.tsx file and search for the usage of `Drawer`.
fd -e tsx -x rg 'Drawer' {}

Length of output: 978


Script:

#!/bin/bash
# Description: Verify the integration of the Drawer component specifically in the scanner.tsx file.

# Search for the usage of `Drawer` in the scanner.tsx file and include file paths in the output.
rg 'Drawer' src/pages/scanner.tsx -A 5 --with-filename

Length of output: 1001

src/pages/dashboard.tsx (2)

17-17: Verify the integration of the Drawer component.

The import of Drawer from ../components/Drawer replaces the previously used Background, NavBar, and ThemeToggle. Ensure that Drawer is correctly integrated and all functionalities previously handled by these components are now adequately covered by Drawer.

Verification successful

Verified: The Drawer component is correctly integrated.

The Drawer component is used to wrap the main content and footer in src/pages/dashboard.tsx, indicating it is effectively replacing the functionalities of the removed components (Background, NavBar, and ThemeToggle). The integration appears consistent with the intended layout changes.

  • The Drawer component is used with pageTabs for navigation, likely replacing NavBar.
  • The layout management seems to be handled by Drawer, replacing Background and ThemeToggle.
Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify the integration of the Drawer component in the dashboard.tsx file.

# Test: Search for the usage of `Drawer` in the dashboard.tsx file. Expect: Proper integration and replacement of old components.
rg --type tsx -A 5 $'Drawer' src/pages/dashboard.tsx

Length of output: 79


Script:

#!/bin/bash
# Description: Verify the integration of the Drawer component in the dashboard.tsx file.

# Test: Search for the usage of `Drawer` in the dashboard.tsx file. Expect: Proper integration and replacement of old components.
rg 'Drawer' src/pages/dashboard.tsx -A 5

Length of output: 561


466-473: Approve the usage of Drawer and suggest verification of status-based logic.

The Drawer component is used effectively to encapsulate the main content and navigation. Verify that all status-based views are correctly rendered and accessible as intended.

Verification successful

Status-based logic in the Dashboard component is correctly implemented.

The Dashboard component effectively queries and uses the application status to render the appropriate content. The logic for handling different statuses appears to be functioning as intended. No issues were found with the status-based logic.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify status-based logic in the Dashboard component.

# Test: Search for status-based logic handling in the Dashboard component. Expect: Correct rendering and accessibility for different statuses.
rg --type tsx -A 5 $'status' src/pages/dashboard.tsx

Length of output: 79


Script:

#!/bin/bash
# Locate the dashboard.tsx file and search for status-based logic within it.

# Find the dashboard.tsx file
fd --type f --name 'dashboard.tsx' --exec rg 'status' {}

Length of output: 307


Script:

#!/bin/bash
# Locate the dashboard.tsx file and search for status-based logic within it.

# Find the dashboard.tsx file and search for status-based logic
fd 'dashboard.tsx' -x rg 'status' {}

Length of output: 356

const { status, count } = value;
return (
<>
{status}: {count} <br />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a key property to iterable elements.

The React fragment inside the map function at line 41 should have a unique key property to optimize rendering and update processes.

Suggest adding a key as follows:

- <>
+ <React.Fragment key={i}>

Committable suggestion was skipped due to low confidence.

Tools
Biome

[error] 41-41: Missing key property for this element in iterable.

The order of the items may change, and having a key can help React identify which item was moved.
Check the React documentation.

(lint/correctness/useJsxKeyInIterable)

Comment on lines +14 to +111
export const Drawer = ({
children,
pageTabs,
}: {
children: JSX.Element[] | JSX.Element;
pageTabs?: PageTab[];
}) => {
const { data: session } = useSession();
const router = useRouter();

const drawer = useRef<HTMLInputElement>(null);

return (
<>
<Background />
<div className="drawer drawer-end relative h-full min-h-screen w-full overflow-x-hidden font-montserrat">
<input
id="my-drawer-3"
type="checkbox"
className="drawer-toggle"
ref={drawer}
/>

<div className="drawer-content flex flex-col">
<NavBar />
{children}
</div>

<div className="drawer-side md:hidden z-50 ">
<label
htmlFor="my-drawer-3"
className="drawer-overlay md:hidden"
></label>

<div className="menu h-full w-80 flex-row content-between overflow-y-auto bg-white p-4 dark:bg-[#1F1F1F] md:hidden">
<ul className="w-full">
<button
className="btn btn-square btn-ghost drawer-button"
onClick={() => {
if (drawer.current) {
drawer.current.checked = false;
}
}}
>
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
>
<path
fill="currentColor"
fillRule="evenodd"
d="m6.5 17.5l8.25-5.5L6.5 6.5l1-1.5L18 12L7.5 19z"
/>
</svg>
</button>
{pageTabs?.map(({ pageName, link }, i) => (
<li key={i}>
<Link className="mx-2 my-2 text-base font-bold" href={link}>
{pageName}
</Link>
</li>
))}
</ul>

<div className="mx-1 mb-2 flex w-full items-center justify-between ">
<ThemeToggle />
{session ? (
<div>
<a className="font-sub mx-2.5 text-sm">
Hi,{" "}
<strong className="font-bold">{session?.user?.name}</strong>
</a>
<button
onClick={() => signOut()}
className="font-sub rounded bg-primary px-2.5 py-2.5 text-sm font-bold text-white dark:text-gray-300"
>
Sign Out
</button>
</div>
) : (
<button
className="btn btn-primary text-white"
onClick={() => router.push("/login")}
>
Sign In
</button>
)}
</div>
</div>
</div>
</div>
</>
);
};

export default Drawer;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well-structured Drawer component with effective use of React features.

The component is well-structured, making good use of React hooks, refs, and conditional rendering. The use of useSession for session management and useRouter for navigation is appropriate. The ref usage for controlling the drawer's state is a good practice.

Suggestion for Improvement:
Consider adding aria-labels to interactive elements like buttons for better accessibility.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between b6286bd and 9273b0d.

Files selected for processing (1)
  • src/pages/grade.tsx (2 hunks)
Files skipped from review as they are similar to previous changes (1)
  • src/pages/grade.tsx

@Krish120003 Krish120003 changed the title fix: some miscellaneous code cleanup refactor: make drawer component Sep 13, 2024
Copy link
Member

@Krish120003 Krish120003 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Some of this work might need more refactor in the future, such as maybe including defaults for pageTabs in the drawer component.

@Krish120003 Krish120003 merged commit 53f9bac into main Sep 13, 2024
6 checks passed
@Krish120003 Krish120003 deleted the remove-code-duplication branch September 13, 2024 23:11
@Krish120003
Copy link
Member

This refactor introduced some bugs with mobile content sizing, it may need to be revisited in the future.

arian81 added a commit that referenced this pull request Oct 24, 2024
* feat: updated schedule for DH10 (#179)

* chore: setup using google api

* chore: use google api

* feat: make calendar work

* feat: add schedule button

---------

Co-authored-by: Arian Ahmadinejad <35879206+arian81@users.noreply.github.com>
Co-authored-by: Arian Ahmadinejad <ahmadinejadarian@gmail.com>

* chore: hide logout on schedule

* chore: add caching

* chore: add attendee package button

* feat: add event locations to schedule (#182)

* decoupled a lot of functionality in schedule.tsx

* fixed getDefaultCurrentDate refactor

* cleaned up schedule.tsx from merge

* added location to the description

* removed console.logs

* added location to subheading of events

* doing some cleanup

* removed removeResourceLabel since description is now unviewable

* removed removeResourceLabel since description is now unviewable

* making pop viewable again because it needs to be

* support 5 colour option

* fixing tooltip

* fix: disable pop up

* added circles in agenda view

---------

Co-authored-by: Rachelle DeMan <demanr@mcmaster.ca>
Co-authored-by: Krish <krish120003@gmail.com>
Co-authored-by: Arian Ahmadinejad <ahmadinejadarian@gmail.com>

* fix: schedule login hot fix

* fix: hotfix update z indexing on mobile, add sign in button

* fix: uncomment out appointmentTooltipRender (#184)

* decoupled a lot of functionality in schedule.tsx

* fixed getDefaultCurrentDate refactor

* cleaned up schedule.tsx from merge

* added location to the description

* removed console.logs

* added location to subheading of events

* doing some cleanup

* removed removeResourceLabel since description is now unviewable

* removed removeResourceLabel since description is now unviewable

* making pop viewable again because it needs to be

* support 5 colour option

* fixing tooltip

* fix: disable pop up

* added circles in agenda view

* uncommented out tooltip render

---------

Co-authored-by: Rachelle DeMan <demanr@mcmaster.ca>
Co-authored-by: Krish <krish120003@gmail.com>
Co-authored-by: Arian Ahmadinejad <ahmadinejadarian@gmail.com>

* feat: Create LICENSE

* chore: cleanup old components (#187)

Remove Google Analytics, Logrocket and unused files. Also mark routers for deprecation.

* feat: add posthog

* refactor: make drawer component (#189)

* created Drawer component

* decoupled Drawer out of welcome page

* decoupled Drawer out of dashboard, grade, me, and scanner pages

* change ApplicationTable button text from View Application to View

* remove unused files

* cleaning up file dependencies

* removed navigation file

* feat: DH11 Applications (#196)

* feat: DH11 application and review tables

* fix: update logsnag project

* feat: add user to dh11 applications

* feat: use DH11 Applications

* fix: update routes to refer to dh11

* feat: prisma db migration

* fix: remove broken migrationi

* feat: change from DH10 to DH11 everywhere

* fix: form is submittable

* fix: improve errors

* fix: don't refetch autofill

* fix: more better errors for form

* fix: typos

* fix: add better errors

* fix: more typos

* fix: custom socials form handling (#198)

* refactor: rearrage files

* feat: add react icons

* fix: imports

* feat: fixes to form, review endpoint and ui update

* fix: imports

* fix: update routing and style consistency for dh11  (#199)

* fix: disable outdated pages

* fix: update routing to use DH11 status, capitalize name

* fix: update modal styling

* fix: readable dark button text color

* feat: use same button as dashboard

* feat: match dark and light primary colors

* fix: restore original background

* fix: match text styling with dashboard

* fix: routing TS errors

* feat: create prisma migration (#200)

* fix: MLH form fields and resume are optional, change form persist key for DH11 (#201)

* feat: update socials and info about DH11 (#202)

* fix: update DH11 socials

* fix: update hackathon length

* fix: improve UX with link behavior, spelling, education labels and word count (#203)

* fix: open links in new tab

* fix: spelling of lookout

* fix: add optional to education labels

* fix: make word count ux better

* fix: show word count on grading page instead of words left

---------

Co-authored-by: Krish <krish120003@gmail.com>

* feat: add resume upload (#204)

* feat: DH11 application and review tables

* fix: update logsnag project

* feat: add user to dh11 applications

* feat: use DH11 Applications

* fix: update routes to refer to dh11

* feat: prisma db migration

* feat: backend for uppy signed url upload

* fix: remove unnecessary validation, store at root

* fix: cleanup packages

* feat: basic upload component

* feat: add endpoint for getting resume files

* feat: handle uppy upload responses

* fix: handle empty string dates

* feat: connect uppy to react form

* fix: prettier formatting

* fix: add missing types

* fix: make form mobile friendly again

* fix: remove migration

* fix: add missing libraries

---------

Co-authored-by: Krish120003 <krish120003@gmail.com>

* fix: posthog rewrite using netlify

* feat: add posthog submission tracking

* feat: use netlify redirects for posthog, add identification and apply event capture (#205)

* feat: add posthog identify

* fix: upgrade posthog

* fix: pnpm lock

* fix: use posthog suggested event naming

* fix: add missing space

* feat: add logsnag track for dh11 application

* fix: correct host

* fix: add posthog on server

* fix: use component to identify in posthog

* fix: use consistent id

---------

Co-authored-by: Arian Ahmadinejad <ahmadinejadarian@gmail.com>

---------

Co-authored-by: Krish <krish120003@gmail.com>
Co-authored-by: Felix Fong <fongf2@mcmaster.ca>
Co-authored-by: Rachelle DeMan <demanr@mcmaster.ca>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants