filter placeholder role so it cannot be selected for invites

This commit is contained in:
Gregor Vostrak
2024-04-21 00:25:43 +02:00
parent c5a6608211
commit 338e4ec469
4 changed files with 13 additions and 4 deletions

View File

@@ -10,6 +10,7 @@ import InputError from '@/Components/InputError.vue';
import type { Role } from '@/types/jetstream'; import type { Role } from '@/types/jetstream';
import { useForm } from '@inertiajs/vue3'; import { useForm } from '@inertiajs/vue3';
import { getCurrentOrganizationId } from '@/utils/useUser'; import { getCurrentOrganizationId } from '@/utils/useUser';
import { filterRoles } from '@/utils/roles';
const show = defineModel('show', { default: false }); const show = defineModel('show', { default: false });
const saving = ref(false); const saving = ref(false);
@@ -78,7 +79,7 @@ useFocus(clientNameInput, { initialValue: true });
<div <div
class="relative z-0 mt-1 border border-card-border rounded-lg cursor-pointer"> class="relative z-0 mt-1 border border-card-border rounded-lg cursor-pointer">
<button <button
v-for="(role, i) in availableRoles" v-for="(role, i) in filterRoles(availableRoles)"
:key="role.key" :key="role.key"
type="button" type="button"
class="relative px-4 py-3 inline-flex w-full rounded-lg focus:z-10 focus:outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500" class="relative px-4 py-3 inline-flex w-full rounded-lg focus:z-10 focus:outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500"

View File

@@ -13,8 +13,8 @@ defineProps<{
:href="href" :href="href"
:class=" :class="
twMerge( twMerge(
'contents [&>*]:hover:bg-white/5 [&>*]:transition [&>*]:cursor-pointer [&>*]:border-row-separator [&>*]:border-b', 'contents [&>*]:transition [&>*]:border-row-separator [&>*]:border-b',
href ? '[&>*]:cursor-pointer' : '' href ? '[&>*]:cursor-pointer [&>*]:hover:bg-white/5' : ''
) )
"> ">
<slot></slot> <slot></slot>

View File

@@ -19,6 +19,7 @@ import type {
User, User,
} from '@/types/models'; } from '@/types/models';
import type { Membership, Permissions, Role } from '@/types/jetstream'; import type { Membership, Permissions, Role } from '@/types/jetstream';
import { filterRoles } from '@/utils/roles';
type UserWithMembership = User & { membership: Membership }; type UserWithMembership = User & { membership: Membership };
@@ -169,7 +170,7 @@ const displayableRole = (role: string) => {
<div <div
class="relative z-0 mt-1 border border-card-border rounded-lg cursor-pointer"> class="relative z-0 mt-1 border border-card-border rounded-lg cursor-pointer">
<button <button
v-for="(role, i) in availableRoles" v-for="(role, i) in filterRoles(availableRoles)"
:key="role.key" :key="role.key"
type="button" type="button"
class="relative px-4 py-3 inline-flex w-full rounded-lg focus:z-10 focus:outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500" class="relative px-4 py-3 inline-flex w-full rounded-lg focus:z-10 focus:outline-none focus:border-indigo-500 focus:ring-2 focus:ring-indigo-500"

View File

@@ -0,0 +1,7 @@
import type { Role } from '@/types/jetstream';
export function filterRoles(roles: Role[]) {
return roles.filter(function (role) {
return role.key !== 'placeholder';
});
}