-
Notifications
You must be signed in to change notification settings - Fork 0
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
[frontend] display pending status #233
Conversation
lim396
commented
Jan 30, 2024
•
edited
Loading
edited
- chat channelのcontext menu内のボタンを一度押したら処理が終了するまで再度押せないように修正しました。
- BAN、ADD USERも同様に修正し、処理中はpending状態の表示をするように変更しました。
- エラーが発生した際のユーザーへの通知や処理の修正、モーダルウィンドウ周りの修正(特にBAN)は別PRで行います。
WalkthroughThe recent update introduces a suite of features aimed at enhancing user moderation within chat rooms. This includes the ability to mute or ban users with new UI components, such as Changes
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? TipsChatThere are 3 ways to chat with CodeRabbit:
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 as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
aa058a5
to
8371c5e
Compare
isClicked: false, | ||
}); | ||
const [isUpdateRoleClicked, setIsUpdateRoleClicked] = useState(false); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なーんかこのたくさんstateを作らないといけないのって嫌ですね〜w
useBlock()
useInvite
useMute
useUpdateRole
とかで関心ごとに分けてほしいかもな〜。
例えばですが、こんな感じでuseBlockを設計してみるとか。
const { block, unblock, pending, isBlocked } = useBlock();
...
<ContextMenuItem
disabled={isBlocked || pending}
onSelect={block}
>
Block
</ContextMenuItem>
<ContextMenuItem
disabled={!isBlocked || pending}
onSelect={unblock}
>
Unblock
</ContextMenuItem>
useFormStatusとか、既存にあるものをいろいろ参考にしてみるといいかもしれません。
命名、設計, etc...
https://react.dev/reference/react-dom/hooks/useFormStatus
socket.emit("invite-pong", { userId: user.userId }); | ||
setIsInviting(true); | ||
setInviteState({ isInviting: true, isClicked: false }); | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
inviteがどんな挙動のものなのか、知らないな。どういうものなんだろうこれ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
このファイルはchat-roomに関して書かれているので、単にinviteだと、そのchatにinviteするみたいだから紛らわしいかも。
const router = useRouter(); | ||
const [isClicked, setIsClicked] = useState(false); | ||
|
||
const onBan = async (userId: number) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
onBanという名前がよく分かりません。onXXX
というのはXXXが起きた時に行われるaction
というイメージかと。
例えばonClickだったら、clickされたときに実行されるアクション
という感じです。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
あと、そもそもなんでuserIdを引数に取らないといけないですか?user.id
でいいから必要なさそうな気がするんだけど