From 01515c6a4b1040e1060dcc25e4cd6936579a1b40 Mon Sep 17 00:00:00 2001 From: Ahmad Farhat <ahmad.af.farhat@gmail.com> Date: Tue, 7 Feb 2023 14:27:48 -0500 Subject: [PATCH] General cleanup (#4772) --- .../components/admin/manage_users/ManageUserRow.jsx | 5 ++++- .../admin/site_settings/settings/SettingSelect.jsx | 3 ++- app/javascript/components/home/HomePage.jsx | 10 ++++------ app/javascript/components/recordings/RecordingRow.jsx | 2 +- .../components/recordings/RecordingsList.jsx | 5 ++++- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/javascript/components/admin/manage_users/ManageUserRow.jsx b/app/javascript/components/admin/manage_users/ManageUserRow.jsx index 8b036cba..129bcaed 100644 --- a/app/javascript/components/admin/manage_users/ManageUserRow.jsx +++ b/app/javascript/components/admin/manage_users/ManageUserRow.jsx @@ -17,12 +17,15 @@ import useCreateServerRoom from '../../../hooks/mutations/admin/manage_users/use import DeleteUserForm from './forms/DeleteUserForm'; import useUpdateUserStatus from '../../../hooks/mutations/admin/manage_users/useUpdateUserStatus'; import RoleBadge from '../roles/RoleBadge'; +import { useAuth } from '../../../contexts/auth/AuthProvider'; export default function ManageUserRow({ user }) { const { t } = useTranslation(); + const currentUser = useAuth(); + const mutationWrapper = (args) => useCreateServerRoom({ userId: user.id, ...args }); const updateUserStatus = useUpdateUserStatus(); - const localizedTime = localizeDateTimeString(user?.created_at, user?.language); + const localizedTime = localizeDateTimeString(user?.created_at, currentUser?.language); return ( <tr key={user.id} className="align-middle text-muted border border-2"> diff --git a/app/javascript/components/admin/site_settings/settings/SettingSelect.jsx b/app/javascript/components/admin/site_settings/settings/SettingSelect.jsx index c41c0879..45dbb34a 100644 --- a/app/javascript/components/admin/site_settings/settings/SettingSelect.jsx +++ b/app/javascript/components/admin/site_settings/settings/SettingSelect.jsx @@ -32,11 +32,12 @@ export default function SettingSelect({ SettingSelect.defaultProps = { defaultValue: '', + children: undefined, }; SettingSelect.propTypes = { defaultValue: PropTypes.string, title: PropTypes.string.isRequired, description: PropTypes.string.isRequired, - children: PropTypes.arrayOf(PropTypes.element).isRequired, + children: PropTypes.arrayOf(PropTypes.element), }; diff --git a/app/javascript/components/home/HomePage.jsx b/app/javascript/components/home/HomePage.jsx index d7bc131d..a33417b6 100644 --- a/app/javascript/components/home/HomePage.jsx +++ b/app/javascript/components/home/HomePage.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useMemo } from 'react'; +import React, { useEffect } from 'react'; import { Col, Row, } from 'react-bootstrap'; @@ -31,10 +31,9 @@ export default function HomePage() { [currentUser.signed_in], ); - // hack to deal with the fact that useEffect and toast dont work together very well - useMemo(() => { + useEffect(() => { switch (error) { - case 'InviteInvald': + case 'InviteInvalid': toast.error(t('toast.error.users.invalid_invite')); break; case 'SignupError': @@ -42,8 +41,7 @@ export default function HomePage() { break; default: } - // Remove the error - setSearchParams(searchParams.delete('error')); + if (error) { setSearchParams(searchParams.delete('error')); } }, [error]); return ( diff --git a/app/javascript/components/recordings/RecordingRow.jsx b/app/javascript/components/recordings/RecordingRow.jsx index 97b37d80..9db4089d 100644 --- a/app/javascript/components/recordings/RecordingRow.jsx +++ b/app/javascript/components/recordings/RecordingRow.jsx @@ -97,7 +97,7 @@ export default function RecordingRow({ <Button onClick={() => window.open(format.url, '_blank')} className={`btn-sm rounded-pill me-1 mt-1 border-0 btn-format-${format.recording_type.toLowerCase()}`} - key={format.id} + key={`${format.recording_type}-${format.url}`} > {format.recording_type} </Button> diff --git a/app/javascript/components/recordings/RecordingsList.jsx b/app/javascript/components/recordings/RecordingsList.jsx index 6c098dd5..9a39a962 100644 --- a/app/javascript/components/recordings/RecordingsList.jsx +++ b/app/javascript/components/recordings/RecordingsList.jsx @@ -90,7 +90,10 @@ RecordingsList.propTypes = { name: PropTypes.string, length: PropTypes.number, visibility: PropTypes.string, - formats: PropTypes.arrayOf(PropTypes.string), + formats: PropTypes.arrayOf(PropTypes.shape({ + recording_type: PropTypes.string, + url: PropTypes.string, + })), users: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.number, name: PropTypes.string, -- GitLab