Conversation
| if (isSearchTab) { | ||
| return ( | ||
| <Tooltip title="Add this schedule to your account before adding classes"> | ||
| <span |
There was a problem hiding this comment.
issue: i know MUI tooltips are tricky, but this is kinda ugly :(
not blocking tho
There was a problem hiding this comment.
will refer this to the design team next meeting, because i got no idea how to make this tooltip look better
…for clarity in schedule management
…b.com/icssc/AntAlmanac into 911-suggestion-view-friends-schedules
…nsistent state management
…n cell functionality
|
todo: i will fix the deployment db. db migrate command wasn't working a couple weeks ago, so I ran the sql commands manually into the scheduler, but now i gotta undo said commands and redeploy |
yeah the problem is annoying, but its actually very easy to fix — drizzle doesn't generate idiomatic migrations by default, but cursor will clean it up for you pretty easily |
i would very very strongly recommend against executing commands against the DB directly, as that can really fuck with drizzle's state and the rest of the DB (in this case its staging so its whatever, but its a good rule of thumb to be really judicious in your usage) |
KevinWu098
left a comment
There was a problem hiding this comment.
Some more minor stuff. given that is past midnight already, im opting not to review the Friends- components. if we'd like to merge, im happy to approve in the morning. but otherwise, we can take an extra day to resolve this and maybe take a pass on styling
| const session = useSessionStore.getState(); | ||
| if (session.sessionIsValid) { | ||
| try { | ||
| await autoSaveSchedule({}); |
There was a problem hiding this comment.
issue: why are we calling auto save schedule
| throw new TRPCError({ | ||
| code: 'BAD_REQUEST', | ||
| message: theyRequestedYou | ||
| ? 'This user has already sent you a friend request. Check your Requests tab to accept.' |
There was a problem hiding this comment.
thought (non-blocking): we could probably just "accept" the friend req at this point and success it
| * @param input - An object containing the schedule ID. | ||
| * @returns The schedule data associated with the schedule ID, or throws NOT_FOUND if not found. | ||
| */ | ||
| getSharedSchedule: procedure.input(z.object({ scheduleId: z.string() })).query(async ({ input }) => { |
There was a problem hiding this comment.
issue: is this method not redundant? is there really no method for getting schedule by id on another router?
if it is not redundant, seems like this should... probably live on another router (?) with validation that the user is actually allowed to fetch this schedule?
…b.com/icssc/AntAlmanac into 911-suggestion-view-friends-schedules
…nents by using IconButton for mobile views


Summary
Builds off of the sharable schedule links system from #1357.
view a friend's shared schedule via a direct link.
client-supplied
providerAccountId, closing an impersonation/spoofing vector.Features
Friends system
either direction
re-requesting
blocked from viewing
state while data fetches.
People/PeopleOutlineicon to controlwhether friends can see it; defaults to visible for all existing schedules
DB changes
packages/db/src/schema/friendship.ts— newfriendshipstable (requesterId,addresseeId,status: PENDING | ACCEPTED | BLOCKED, timestamps)packages/db/src/schema/schedule/schedule.ts— addedsharedWithFriends boolean NOT NULL DEFAULT truepackages/db/migrations/0008_old_misty_knight.sql— friendships table + self-friend constraintpackages/db/migrations/0009_friendships_no_self_friend.sql— check constraint preventing self-friendshippackages/db/migrations/0010_schedule_shared_with_friends.sql— new column on schedulesTest plan
Issues
Closes #