-
Notifications
You must be signed in to change notification settings - Fork 24
Redesigned events directory #651
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
Merged
Merged
Changes from 63 commits
Commits
Show all changes
87 commits
Select commit
Hold shift + click to select a range
6558d39
feat: make Panel collapsible
Isoscelestial a6303c6
feat: use new collapsing panel system for club listing officers panel…
Isoscelestial 872436d
chore(panel): cleanup comments, more logical callback function callin…
Isoscelestial b68be2e
fix(panel): add slotClassNames prop to resolve inconsistent absolutel…
Isoscelestial 4e11b04
add: transparent and conditionally transparent panels
Isoscelestial 4e25efe
Merge branch 'feature/improved-panels' into feature/redesigned-events…
Isoscelestial b697be1
add(events): begin implementing redesigned events directory page
Isoscelestial 4f2692e
feat(events): move events directory tab switcher to layout
Isoscelestial 6216dcb
fix(events): tab switcher forgetting selected tab when page refreshed
Isoscelestial 5c542fa
feat(events): begin implementing UI for events directory page body
Isoscelestial 5cb9a9d
feat(events): add filter list for time and location filters; begin ad…
Isoscelestial b554667
fix(events): fix modal and layout styles
Isoscelestial 6168fbf
feat(events): add custom date pickers
Isoscelestial 7af9cd4
feat: temporarily modify events.byDateRange to also return club data
Isoscelestial 12033e6
feat(events): add view options bar
Isoscelestial 7804923
Merge pull request #636 from UTDNebula/develop
TyHil 7b07f50
fix(events): stop clear button triggering exclusion on filter list
Isoscelestial 153c521
feat(events): begin adding filter tags
Isoscelestial 8131576
feat(events): begin adding event filter schema; add URL query params …
Isoscelestial 95eaea4
feat(events): split panels into memoized components, add location inc…
Isoscelestial d581836
fix(events): unstable objects causing re-renders, missing location ex…
Isoscelestial d0e4d78
feat: useFilterFieldsMemo wrapper hook for useMemo
Isoscelestial 43be82b
feat: add keybinds to toggle sidebar and change page
Isoscelestial 82abfa0
feat(events): tags filter
Isoscelestial 8c93823
feat(events): date filter
Isoscelestial 8025dbe
fix: stabilize tags filter panel
Isoscelestial c805d27
fix: set param's custom dateStart and dateEnd if their state has a value
Isoscelestial ffce070
refactor: setParams function to easily set the URL search params, add…
Isoscelestial a774a06
feat(events): filters bar, improve useFilterFieldsMemo, use prop dril…
Isoscelestial fa7b687
refactor: type safe wrapper class for URLSearchParams with callback f…
Isoscelestial 715a1c7
feat(events): fully functional filters bar
Isoscelestial 48e548d
chore: lint and format
Isoscelestial fa5a9f2
feat(events): better mobile pagination input field
Isoscelestial 2ef78d0
fix: /events tabs not set on navigate; FilterList exclusion visibilit…
Isoscelestial befc860
git ignore .vscode
Isoscelestial 1c797cd
feat(events): view options
Isoscelestial d86b60f
fix(events): hotkey responsiveness, round date days, move sidebar but…
Isoscelestial 6f39271
feat(events): clear all filters buttons
Isoscelestial ea83b1c
feat(events): search bar
Isoscelestial ddc15c9
feat(events): misc. style tweaks
Isoscelestial f27177a
Merge pull request #657 from UTDNebula/develop
AbhiramTadepalli 2eb8e0e
fix(events): misc fixes and refactors
Isoscelestial a3436b3
feat(events): dirty state for filter chip
Isoscelestial 21c3af1
feat(events): clear query field button, pagination on bottom of page
Isoscelestial f7672cd
feat(events): API query calls, begin rewriting findByFilters procedur…
Isoscelestial c7fff62
feat(events): sort by recency when viewing past events
Isoscelestial 18ed6ef
fix(events): go to first page when filters change
Isoscelestial c3457bf
feat(events): pagination response
Isoscelestial bf1281e
feat(events): use SQL select rather than Drizzle query, implement tag…
Isoscelestial b616e36
feat(events): performance improvements, loading state, framer motion,…
Isoscelestial 218b0ec
feat(events): use SwipeableDrawer instead of Modal for mobile filters…
Isoscelestial 0ce8c81
feat(events): implement clubs filter, add placeholder for query and l…
Isoscelestial 080942e
fix(events): default export for useStable, responsive event cards
Isoscelestial 1e6b52f
fix(events): make event search bar work by adding schema index
Isoscelestial 51c7c3d
feat(events): change view layout
Isoscelestial 5d396e9
fix(events): don't refetch on mount if server fetched already, displa…
Isoscelestial a27ad9e
feat(events): add event count to header, comment out calendar feed su…
Isoscelestial dc39cc8
fix(events): improved error handling
Isoscelestial 3b68782
feat(events): abstract setParams, create ParamSetter class, move rela…
Isoscelestial 257e0fb
feat(events): change z index of sentry feedback button instead of hid…
Isoscelestial 8dd2bf2
fix(events): use store instead of raising state, which caused infinit…
Isoscelestial e4e905b
chore: remove deprecated schemas from eventFilter.ts
Isoscelestial de2f0f9
feat(events): add snackbar when using a filter that requires being si…
Isoscelestial 9337ecf
Merge branch 'develop' into feature/redesigned-events-directory
Isoscelestial 5ecdbd2
fix: merge errors
Isoscelestial ba3d5ba
refactor: combine ClubTagEdit and ClubTagFilter
Isoscelestial d0fa490
refactor(events): improved querying for registered events and joined …
Isoscelestial d20fded
Merge branch 'develop'
BK2004 ec57a80
Merge pull request #679 from UTDNebula/develop
TyHil 01cc573
refactor: use factory method for creating a ParamSetter
Isoscelestial 5a783d0
Merge branch 'develop' into feature/redesigned-events-directory
Isoscelestial 402c2ae
fix: drizzle migration
Isoscelestial cda5ccd
fix: error when setting state in render
Isoscelestial bb53570
refactor: make PageHeader component
Isoscelestial a0a76c0
feat: improve focus states and keyboard accessibility for EventCard
Isoscelestial b9c2bfd
fix: add back missing migration journal entry
Isoscelestial 0427068
fix: fully add back missing migration
Isoscelestial 050e70d
refactor: copy updated FilterChip and FilterList from UTD Trends
Isoscelestial c264009
refactor: more sensible file structure
Isoscelestial 2f00c71
Merge branch 'feature/redesigned-events-directory' of https://github.…
BK2004 1431daf
resolve delete conflict
BK2004 e00cbf3
fix API distinctTags and topTags type mismatch in ClubTagAutocomplete
BK2004 218b65b
run format/lint
BK2004 4daadeb
fix: add back tag count to ClubTagAutocomplete
Isoscelestial 90f1f42
feat: list view EventCard improvements
Isoscelestial c3c74c2
feat: open dropdown menu on mouse down instead
Isoscelestial 5958a1b
refactor: use distinct schemas for URL params and filters, and use tr…
Isoscelestial File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -41,3 +41,4 @@ yarn-error.log* | |
|
|
||
| .idea | ||
| .neon | ||
| .vscode | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| const Events = async () => { | ||
| return ( | ||
| <main className="font-bold relative select-none h-72"> | ||
| <h1 className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 text-[200px] text-slate-200 dark:text-slate-800"> | ||
| WIP | ||
| </h1> | ||
| <h2 className="absolute bottom-1/2 left-1/2 -translate-x-1/2 translate-y-20 text-3xl text-slate-800 dark:text-slate-200"> | ||
| Coming soon! | ||
| </h2> | ||
| </main> | ||
| ); | ||
| }; | ||
|
|
||
| export default Events; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,22 @@ | ||
| import { ReactNode } from 'react'; | ||
| import EventsTitle from '@src/components/events/directory/EventsTitle'; | ||
| import { EventHeader } from '@src/components/header/Header'; | ||
|
|
||
| type EventDirectoryLayoutProps = { | ||
| children: ReactNode; | ||
| }; | ||
|
|
||
| export default async function EventDirectoryLayout({ | ||
| children, | ||
| }: EventDirectoryLayoutProps) { | ||
| return ( | ||
| <> | ||
| <EventHeader /> | ||
| <main className="mb-5 flex flex-col sm:px-4 max-w-6xl mx-auto"> | ||
| {/* EventsTitle should be in layout.tsx so that it doesn't re-render between pages */} | ||
| <EventsTitle /> | ||
| <div className="flex flex-col gap-y-4 max-sm:px-4">{children}</div> | ||
| </main> | ||
| </> | ||
| ); | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| import { type Metadata } from 'next'; | ||
| import { redirect } from 'next/navigation'; | ||
| import EventsBody from '@src/components/events/directory/EventsBody'; | ||
| import { api } from '@src/trpc/server'; | ||
| import { eventFiltersSchema, EventParamsSchema } from '@src/utils/eventFilter'; | ||
|
|
||
| export const metadata: Metadata = { | ||
| title: 'Events', | ||
| description: 'The place to find events at UTD.', | ||
| alternates: { | ||
| canonical: 'https://clubs.utdnebula.com/events', | ||
| }, | ||
| openGraph: { | ||
| url: 'https://clubs.utdnebula.com/events', | ||
| description: 'The place to find events at UTD.', | ||
| }, | ||
| }; | ||
| const Events = async (props: { searchParams: Promise<EventParamsSchema> }) => { | ||
| const searchParams = await props.searchParams; | ||
| const parsed = eventFiltersSchema.parse(searchParams); | ||
|
|
||
| // Server-side query to avoid client-side fetching on load | ||
| const results = await Promise.allSettled([ | ||
| api.event.findByFilters({ filters: parsed }), | ||
| api.event.count({ includePast: true }), | ||
| ]); | ||
|
|
||
| const initialEvents = | ||
| results[0].status === 'fulfilled' ? results[0].value : undefined; | ||
| const count = results[1].status === 'fulfilled' ? results[1].value : 0; | ||
|
|
||
| // If error fetching events with current filters, clear all filters and reload page | ||
| if ( | ||
| results[0].status === 'rejected' && | ||
| Object.keys(searchParams).length > 0 | ||
| ) { | ||
| redirect('/events'); | ||
| } | ||
|
|
||
| return ( | ||
| <> | ||
| <EventsBody initialQueryData={initialEvents} total={count} /> | ||
| </> | ||
| ); | ||
| }; | ||
|
|
||
| export default Events; |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.