Skip to content

Commit 3430cd8

Browse files
committed
hack workaround for now
1 parent a9ada54 commit 3430cd8

2 files changed

Lines changed: 27 additions & 18 deletions

File tree

components/forms/RoleEditForm.tsx

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,18 @@ type RoleEditFormResult = {
2424
color: string;
2525
}
2626

27-
export function RoleEditForm({role, server, roles_length }: {role: Role, server: Server, roles_length: number }) {
27+
export function RoleEditForm({role, roles_length, max_role_position }: {role: Role, roles_length: number, max_role_position: number }) {
2828
const { register, handleSubmit, formState: { errors } } = useForm<RoleEditFormResult>();
29-
const userHighestRolePosition = useUserHighestRolePosition();
3029
const supabase = useSupabaseClient();
31-
const isFormDisabled = role.is_system || role.position <= userHighestRolePosition;
3230
const userPerms = useUserServerPerms();
31+
const userHighestRolePosition = max_role_position; // useUserHighestRolePosition();
3332

34-
console.log(userHighestRolePosition);
33+
const isFormDisabled = role.is_system || role.position <= userHighestRolePosition;
3534
const serverPermissions = Object.entries(ServerPermissions).filter(
3635
([key, value]) => typeof value === 'number' && key !== 'NONE' && key !== 'OWNER'
3736
);
3837

3938
const onSubmit = async (formData: RoleEditFormResult) => {
40-
console.log(formData);
4139
if (typeof formData.permissions === 'string') {
4240
formData.permissions = [ formData.permissions ];
4341
}
@@ -48,15 +46,8 @@ export function RoleEditForm({role, server, roles_length }: {role: Role, server:
4846

4947
const perms = formData.permissions.reduce((acc, cur) => acc | parseInt(cur), 0);
5048

51-
console.log({
52-
...formData,
53-
name: formData.name,
54-
permissions: perms,
55-
id: role.id
56-
});
57-
5849
// If a role is being edited, update it
59-
const { data, error } = await updateRole(
50+
const { error } = await updateRole(
6051
supabase,
6152
role.id,
6253
formData.name,
@@ -76,7 +67,7 @@ export function RoleEditForm({role, server, roles_length }: {role: Role, server:
7667
<div className="w-full space-x-2 mb-2 flex flex-row">
7768
<input
7869
type="text"
79-
className="text-xl rounded-md h-7 p-2"
70+
className="text-xl rounded-md h-7 p-2 bg-grey-900 w-full"
8071
disabled={isFormDisabled}
8172
defaultValue={role.name}
8273
placeholder='Role Name'

components/home/modals/ServerSettingsModal.tsx

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
addServerIcon,
1010
getServer,
1111
} from '@/services/server.service';
12-
import { useSupabaseClient } from '@supabase/auth-helpers-react';
12+
import { useSupabaseClient, useUser } from '@supabase/auth-helpers-react';
1313
import { PostgrestError } from '@supabase/supabase-js';
1414
import { Role, ServersForUser } from '@/types/dbtypes';
1515
import { ServerPermissions } from '@/types/permissions';
@@ -18,7 +18,7 @@ import 'styles/TabNav.module.css';
1818
import { RoleEditForm } from '@/components/forms/RoleEditForm';
1919
import { useServerRoles, useUserServerPerms } from '@/lib/store';
2020
import PlusIcon from '@/components/icons/PlusIcon';
21-
import { createRole } from '@/services/roles.service';
21+
import { createRole, getHighestRolePositionForUser } from '@/services/roles.service';
2222

2323

2424
const tabRootClass = 'flex flex-row';
@@ -39,7 +39,25 @@ export default function ServerSettingsModal({
3939
const userServerPerms = useUserServerPerms();
4040
const supabase = useSupabaseClient();
4141
const roles = useServerRoles(server?.server_id!);
42+
const user = useUser();
43+
// HACK: Workaround for the weird state bug where the user's max role is not correct
44+
const [maxRole, setMaxRole] = useState<number>(30676);
4245

46+
useEffect(() => {
47+
async function handleAsync() {
48+
const { data, error } = await getHighestRolePositionForUser(supabase, server!.server_id, user?.id!);
49+
if (error) {
50+
console.log(error);
51+
return;
52+
}
53+
54+
else {
55+
setMaxRole(data);
56+
}
57+
}
58+
59+
handleAsync();
60+
}, [server?.server_id, supabase, user?.id, maxRole, server]);
4361
return (
4462
<Modal
4563
modalRef={modalRef}
@@ -83,7 +101,7 @@ export default function ServerSettingsModal({
83101
<button
84102
className=""
85103
onClick={async () => {
86-
const { data, error } = await createRole(
104+
await createRole(
87105
supabase,
88106
server?.server_id!,
89107
'New Role',
@@ -118,7 +136,7 @@ export default function ServerSettingsModal({
118136
value={role.id.toString()}
119137
className={`${tabContentClass} p-2`}
120138
>
121-
<RoleEditForm role={role} server={server?.servers!} roles_length={roles.length}/>
139+
<RoleEditForm role={role} roles_length={roles.length} max_role_position={maxRole}/>
122140
</Tabs.Content>
123141
))}
124142
</Tabs.Root>

0 commit comments

Comments
 (0)