Skip to content

Conversation

@DejayJD
Copy link
Contributor

@DejayJD DejayJD commented Aug 16, 2024

Description

Replaces the placeholder icon buttons with an action menu like designs have.
Also set up the permissions to show options accordingly.
I also tweaked the deleting UI to show half opacity while deleting. Imo it looks pretty nice 👌

2024-08-16 10 41 27

How Has This Been Tested?

web:stage

@changeset-bot
Copy link

changeset-bot bot commented Aug 16, 2024

⚠️ No Changeset found

Latest commit: ceec2b0

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@DejayJD DejayJD requested a review from sliptype August 16, 2024 17:57
…jd/comments-action-menu

# Conflicts:
#	packages/web/src/components/comments/CommentBlock.tsx
#	packages/web/src/components/comments/CommentSectionDesktop.tsx
@audius-infra
Copy link
Collaborator

Preview this change https://demo.audius.co/jd/comments-action-menu

Comment on lines 37 to 42
const prevDeleteStatus = usePrevious(deleteStatus)
useEffect(() => {
if (prevDeleteStatus !== deleteStatus && deleteStatus !== Status.LOADING) {
setIsDeleting(false)
}
}, [deleteStatus, prevDeleteStatus])
Copy link
Contributor Author

@DejayJD DejayJD Aug 16, 2024

Choose a reason for hiding this comment

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

I've done this quite a few times already, probably makes sense to update aquery to have some sort of callback like onStatusChange or like onFetchFinish or something instead doing it manually like this 🤔

Copy link
Contributor Author

@DejayJD DejayJD Aug 16, 2024

Choose a reason for hiding this comment

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

Actually in hindsight the reason I have to do this is so that I can handle individual load states vs global ones (i.e. one comment delete status). Maybe this is just a side-effect of sharing the useAQueryHook in context vs using it at each component.
Hmmm

Copy link
Contributor

Choose a reason for hiding this comment

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

Would it make sense to write useDeleteComment as a standalone hook that reaches into the comment context, instead of sharing the hook itself via the comment context? Like this:

const useDeleteComment = () => {
  const { userId, entityId } = useCurrentCommentSection()
  const [deleteComment, deleteCommentResponse] = useDeleteCommentById()

  const wrappedHandler = async (commentId: string) => {
    if (userId) {
      deleteComment({ id: commentId, userId, entityId })
    }
  }
  return [wrappedHandler, deleteCommentResponse]
}

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yeah maybe this is the move. Let me see how this feels instead

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yea ok thats the way to go, I changed the delete to this and it worked as expected 👌

Copy link
Contributor Author

@DejayJD DejayJD Aug 16, 2024

Choose a reason for hiding this comment

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

Will change the others later on 💯
Feel free to change them next week while I'm on call if you need

Copy link
Contributor

@sliptype sliptype left a comment

Choose a reason for hiding this comment

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

Awesome! I'll probably copy CommentActionBar into mobile too

Reply
</TextLink>

<PopupMenu
Copy link
Contributor

Choose a reason for hiding this comment

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

I would assume they want the popup aligned left bottom similar to our track tile overflow menus

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'll add it to a list of qa things to have design look at 👀 Planning to do some early desktop design QA soon

Comment on lines 37 to 42
const prevDeleteStatus = usePrevious(deleteStatus)
useEffect(() => {
if (prevDeleteStatus !== deleteStatus && deleteStatus !== Status.LOADING) {
setIsDeleting(false)
}
}, [deleteStatus, prevDeleteStatus])
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it make sense to write useDeleteComment as a standalone hook that reaches into the comment context, instead of sharing the hook itself via the comment context? Like this:

const useDeleteComment = () => {
  const { userId, entityId } = useCurrentCommentSection()
  const [deleteComment, deleteCommentResponse] = useDeleteCommentById()

  const wrappedHandler = async (commentId: string) => {
    if (userId) {
      deleteComment({ id: commentId, userId, entityId })
    }
  }
  return [wrappedHandler, deleteCommentResponse]
}

@audius-infra
Copy link
Collaborator

Preview this change https://demo.audius.co/jd/comments-action-menu

…jd/comments-action-menu

# Conflicts:
#	packages/common/src/context/commentsContext.tsx
#	packages/mobile/src/components/comments/CommentDrawer.tsx
#	packages/mobile/src/components/comments/CommentSection.tsx
#	packages/mobile/src/screens/track-screen/TrackScreenMainContent.tsx
#	packages/web/src/components/comments/CommentBlock.tsx
@audius-infra
Copy link
Collaborator

Preview this change https://demo.audius.co/jd/comments-action-menu

@DejayJD DejayJD merged commit d712b07 into main Aug 17, 2024
@DejayJD DejayJD deleted the jd/comments-action-menu branch August 17, 2024 02:02
audius-infra pushed a commit that referenced this pull request Aug 17, 2024
[d712b07] [C-4939] Add comment action menu popup (#9472) JD Francis
[641c9c1] [C-4940] Add comment badges (desktop web) (#9475) JD Francis
[aca7b5c] [PAY-3315][PAY-3316][PAY-3323] Staking bridge (#9408) Saliou Diallo
[bdc139a] [C-4828] Add timestamp features to comments (#9455) JD Francis
[3457aeb] [QA-1504] Fix payout wallet set default (#9467) Raymond Jacobson
[8c127d0] Add comment replies pagination (#9435) Isaac Solo
[c5e250e] [C-4929] Add SendIcon component to harmony and harmony native (#9422) Kyle Shanks
[a17b30e] Hook up client blast params to sdk (#9466) Reed
[11bf6e3] Don't decrypt plaintext chat.last_message (#9470) Reed
[bcaebb0] fix TS error (#9468) JD Francis
[bb802b7] Optimistic add chat blasts (#9463) Reed
[b5de040] Fix bad claimable challenge state due to nullable max_steps (#9461) Randy Schott
[d4c34c3] Fix comment delete in audius-query (#9462) JD Francis
[95380d8] [C-4800] Scaffolding for mobile comments (#9449) Sebastian Klingler
[fbb4256] [PAY-2917] Migrate user endpoints to SDK, round 3 (#9432) Randy Schott
[2c1679a] [PAY-3307] Upgrade chat blasts to chats in sdk (V2) (#9453) Reed
[279a9b2] More explicit audience columns for chat blast. (#9454) Steve Perkins
[acb857e] Fix bug in profile page 404 (#9456) Raymond Jacobson
[c382e82] Don't decrypt plaintext messages (#9448) Reed
[172f172] [QA-1495] Fix 404 for users (#9451) Raymond Jacobson
[82ab743] [PAY-3227] Unfurl tracks in composer (#9434) Raymond Jacobson
[363af71] Compose Solana Client in SDK (#9441) Marcus Pasell
[83260f6] Create ChatBlast from web (#9447) Andrew Mendelsohn
[19e3bdf] [PAY-3341] Add is_plaintext field for chat message (#9442) Steve Perkins
[e25c679] Rename Targeted Message to Chat Blast (#9443) Reed
[fc0604c] [C-4964] Comment header changes (#9444) JD Francis
[f9e4525] [PAY-3310] Chat blast function in sdk (#9436) Reed
[910b655] Move comments context to common (#9440) JD Francis
[bb5eaa1] [C-4910] Comments replys & deletes fixes (#9437) JD Francis
[1072f5a] [PAY-3106][PAY-2914] Use SDK to withdraw USDC (#9419) Marcus Pasell
[1b7bd47] Add social signup feature flag (#9439) Sebastian Klingler
[4130f42] Fix duplicate error name in sentry (#9430) Marcus Pasell
[54a5a78] [PAY-3300] Chat blast: lazy create thread (#9424) Steve Perkins
[ca71d76] [C-4910] Audius-query-ify comments state management (#9423) JD Francis
[20a55e9] [PAY-2917][QA-1466] Migrate more users endpoints (#9308) Randy Schott
[ab38869] [QA-1434] Fix hanging uploads due to errors on mobile (#9420) Randy Schott
[f6ab71c] Add buy button metrics (#9428) Isaac Solo
[06ee8a1] Fix pagination args (#9425) Isaac Solo
[b91437a] [QA-1501] Fix mobile search input (#9426) Sebastian Klingler
[a3c15fd] [C-4932] Add CommentBody component to harmony and harmony-native (#9415) Kyle Shanks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants