feature: phase1 - org-type navigation, Cases permissions, staff filtering, and route guards.
This commit is contained in:
@@ -9,13 +9,13 @@ import {
|
||||
canViewStaff,
|
||||
} from '@/components/shared/permissions';
|
||||
import {
|
||||
STAFF_FEATURE_GROUPS,
|
||||
permissionNamesFromFeatureState,
|
||||
emptyFeaturePermissionState,
|
||||
featureStateFromPermissionNames,
|
||||
featureStateHasTreatmentEdit,
|
||||
resolveStaffFeatureLabel,
|
||||
formatAccessSummary,
|
||||
staffFeatureGroupsForOrgType,
|
||||
type FeaturePermState,
|
||||
} from '@/components/staff/staff-permission-form';
|
||||
import {
|
||||
@@ -112,7 +112,7 @@ function PermissionGrid({
|
||||
|
||||
return (
|
||||
<div className="grid gap-3 sm:grid-cols-2">
|
||||
{STAFF_FEATURE_GROUPS.map((g) => {
|
||||
{staffFeatureGroupsForOrgType(organizationType).map((g) => {
|
||||
const cell = state[g.edit] ?? { read: false, edit: false };
|
||||
return (
|
||||
<div
|
||||
@@ -199,10 +199,14 @@ export default function StaffPage() {
|
||||
|
||||
const canEdit = useMemo(() => canEditStaff(currentOrganization), [currentOrganization]);
|
||||
const inviteHasTreatmentEdit = useMemo(
|
||||
() => featureStateHasTreatmentEdit(invitePerms),
|
||||
[invitePerms],
|
||||
() =>
|
||||
currentOrganization?.type === 'CLINIC' && featureStateHasTreatmentEdit(invitePerms),
|
||||
[currentOrganization?.type, invitePerms],
|
||||
);
|
||||
const editHasTreatmentEdit = useMemo(
|
||||
() => currentOrganization?.type === 'CLINIC' && featureStateHasTreatmentEdit(editPerms),
|
||||
[currentOrganization?.type, editPerms],
|
||||
);
|
||||
const editHasTreatmentEdit = useMemo(() => featureStateHasTreatmentEdit(editPerms), [editPerms]);
|
||||
const hasActivePlan = Boolean(currentOrganization?.plan);
|
||||
const atSeatLimit = useMemo(() => {
|
||||
if (!seats || seats.unlimited) return false;
|
||||
@@ -309,7 +313,7 @@ export default function StaffPage() {
|
||||
setInviteStep(1);
|
||||
setInviteEmail('');
|
||||
setInviteName('');
|
||||
setInvitePerms(emptyFeaturePermissionState());
|
||||
setInvitePerms(emptyFeaturePermissionState(currentOrganization?.type));
|
||||
const defaults = createDefaultWorkingHoursState();
|
||||
setInviteWorkingHoursDays(defaults.days);
|
||||
setInviteAutoRepeatWeekly(defaults.autoRepeatWeekly);
|
||||
@@ -393,7 +397,7 @@ export default function StaffPage() {
|
||||
setEditing(m);
|
||||
setEditStep(1);
|
||||
setEditName(m.name);
|
||||
setEditPerms(featureStateFromPermissionNames(m.permissions ?? []));
|
||||
setEditPerms(featureStateFromPermissionNames(m.permissions ?? [], currentOrganization?.type));
|
||||
setEditHoursValidationError(null);
|
||||
const defaults = createDefaultWorkingHoursState();
|
||||
setEditWorkingHoursDays(defaults.days);
|
||||
|
||||
Reference in New Issue
Block a user