Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .changeset/mosaic-profile-folders.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
---
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@ import { act, screen, waitFor, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { describe, expect, it } from 'vitest';

import { openDialog } from '../../__tests__/feature/dialog';
import { type FakeFapiSeed, holdRequests, serveFapi } from '../../__tests__/feature/fake-fapi';
import { openDialog } from '../../../__tests__/feature/dialog';
import { type FakeFapiSeed, holdRequests, serveFapi } from '../../../__tests__/feature/fake-fapi';
import {
fapiClient,
fapiEnvironment,
fapiMembership,
fapiOrganization,
fapiSession,
fapiUser,
} from '../../__tests__/feature/fapi';
import { renderWithClerk } from '../../__tests__/feature/render';
import { MosaicProvider } from '../../mosaic-provider';
import { OrganizationProfileProvider } from './organization-profile.provider';
import { OrganizationProfileDangerSection } from './organization-profile-danger-section/organization-profile-danger-section';
import { OrganizationProfileGeneralPanel } from './organization-profile-general-panel';
import { OrganizationProfileProfileSection } from './organization-profile-profile-section/organization-profile-profile-section';
} from '../../../__tests__/feature/fapi';
import { renderWithClerk } from '../../../__tests__/feature/render';
import { MosaicProvider } from '../../../mosaic-provider';
import { OrganizationProfileProvider } from '../organization-profile.provider';
import { OrganizationProfileDangerSection } from '../organization-profile-danger-section/organization-profile-danger-section';
import { OrganizationProfileGeneralPanel } from '../organization-profile-general-panel';
import { OrganizationProfileProfileSection } from '../organization-profile-profile-section/organization-profile-profile-section';

const acme = fapiOrganization({ id: 'org_1', name: 'Acme', slug: 'acme' });

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { render, screen, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { afterEach, describe, expect, it, vi } from 'vitest';

import { useConfirmController } from '../../../blocks/confirm';
import { MosaicProvider } from '../../../mosaic-provider';
import { useConfirmController } from '../../../../blocks/confirm';
import { MosaicProvider } from '../../../../mosaic-provider';
import type { InvitationsTableTabViewProps, OrganizationProfileInvitation } from '../invitations-table-tab.types';
import { InvitationsTableTabView } from '../invitations-table-tab.view';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { afterEach, describe, expect, it, vi } from 'vitest';

import { useConfirmController } from '../../../blocks/confirm';
import { MosaicProvider } from '../../../mosaic-provider';
import { useConfirmController } from '../../../../blocks/confirm';
import { MosaicProvider } from '../../../../mosaic-provider';
import type { MembersTableTabViewProps, OrganizationProfileMember } from '../members-table-tab.types';
import { MembersTableTabView } from '../members-table-tab.view';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ import { http, HttpResponse } from 'msw';
import { describe, expect, it } from 'vitest';
import { userEvent as browserEvent } from 'vitest/browser';

import { fapiUrl, holdRequests, serveFapi, worker } from '../../../__tests__/feature/fake-fapi';
import { fapiUrl, holdRequests, serveFapi, worker } from '../../../../__tests__/feature/fake-fapi';
import {
fapiClient,
fapiEnvironment,
fapiMembership,
fapiOrganization,
fapiSession,
fapiUser,
} from '../../../__tests__/feature/fapi';
import { renderWithClerk } from '../../../__tests__/feature/render';
import { MosaicLocalizationProvider, resolveLocalization } from '../../../localization';
} from '../../../../__tests__/feature/fapi';
import { renderWithClerk } from '../../../../__tests__/feature/render';
import { MosaicLocalizationProvider, resolveLocalization } from '../../../../localization';
import { OrganizationProfileMembersPanel } from '../organization-profile-members-panel';

const organization = fapiOrganization({ id: 'org_invitations', name: 'Acme' });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import userEvent from '@testing-library/user-event';
import { useState } from 'react';
import { describe, expect, it, vi } from 'vitest';

import { MosaicProvider } from '../../../mosaic-provider';
import { MosaicProvider } from '../../../../mosaic-provider';
import type { OrganizationProfileInviteMembersDialogProps } from '../organization-profile-invite-members.dialog';
import { OrganizationProfileInviteMembersDialog } from '../organization-profile-invite-members.dialog';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { act, renderHook } from '@testing-library/react';
import { describe, expect, it, vi } from 'vitest';

import { deferred } from '../../../__tests__/async';
import { deferred } from '../../../../__tests__/async';
import type { MembersRoles } from '../members-table-tab.types';
import { useMembersPanelRolesController } from '../organization-profile-members-panel.controller';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,16 @@ import userEvent from '@testing-library/user-event';
import { http, HttpResponse } from 'msw';
import { describe, expect, it, vi } from 'vitest';

import { fapiUrl, holdRequests, serveFapi, worker } from '../../../__tests__/feature/fake-fapi';
import { fapiClient, fapiMembership, fapiOrganization, fapiSession, fapiUser } from '../../../__tests__/feature/fapi';
import { renderWithClerk } from '../../../__tests__/feature/render';
import { MosaicLocalizationProvider, resolveLocalization } from '../../../localization';
import { fapiUrl, holdRequests, serveFapi, worker } from '../../../../__tests__/feature/fake-fapi';
import {
fapiClient,
fapiMembership,
fapiOrganization,
fapiSession,
fapiUser,
} from '../../../../__tests__/feature/fapi';
import { renderWithClerk } from '../../../../__tests__/feature/render';
import { MosaicLocalizationProvider, resolveLocalization } from '../../../../localization';
import { OrganizationProfileMembersPanel } from '../organization-profile-members-panel';

const organization = fapiOrganization({ id: 'org_1', name: 'Acme' });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ import { act, screen, waitFor, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { describe, expect, it } from 'vitest';

import { holdRequests, serveFapi } from '../../../__tests__/feature/fake-fapi';
import { holdRequests, serveFapi } from '../../../../__tests__/feature/fake-fapi';
import {
fapiClient,
fapiEnvironment,
fapiMembership,
fapiOrganization,
fapiSession,
fapiUser,
} from '../../../__tests__/feature/fapi';
import { renderWithClerk } from '../../../__tests__/feature/render';
} from '../../../../__tests__/feature/fapi';
import { renderWithClerk } from '../../../../__tests__/feature/render';
import { OrganizationProfileMembersPanel } from '../organization-profile-members-panel';

const organization = fapiOrganization({ id: 'org_requests', name: 'Acme' });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { act, render, screen, waitFor, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { afterEach, describe, expect, it, vi } from 'vitest';

import { deferred } from '../../../__tests__/async';
import { MosaicProvider } from '../../../mosaic-provider';
import { deferred } from '../../../../__tests__/async';
import { MosaicProvider } from '../../../../mosaic-provider';
import type { RequestsTableTabViewProps } from '../requests-table-tab.types';
import { RequestsTableTabView } from '../requests-table-tab.view';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { useRef } from 'react';

import { useConfirmController } from '../../blocks/confirm';
import { useListRemovalFocus } from '../../hooks/use-list-removal-focus';
import { useLocale, useMessages } from '../../localization';
import { formatDate } from '../../utils/format-date';
import { useConfirmController } from '../../../blocks/confirm';
import { useListRemovalFocus } from '../../../hooks/use-list-removal-focus';
import { useLocale, useMessages } from '../../../localization';
import { formatDate } from '../../../utils/format-date';
import type { useInvitationsTableModel } from './invitations-table-tab.model';
import type { InvitationsTableTabViewProps, OrganizationProfileInvitation } from './invitations-table-tab.types';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { ClerkRuntimeError, isClerkAPIResponseError } from '@clerk/shared/error'
import { useClerk, useOrganization, useSession } from '@clerk/shared/react';
import type { ClerkAPIError, OrganizationInvitationResource } from '@clerk/shared/types';

import { save } from '../../utils/errors';
import { save } from '../../../utils/errors';
import type { MembersRoles } from './members-table-tab.types';

const PAGE_SIZE = 10;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { MouseEventHandler, Ref } from 'react';

import type { ConfirmController } from '../../blocks/confirm';
import type { DialogFocusTarget } from '../../components/dialog';
import type { ConfirmController } from '../../../blocks/confirm';
import type { DialogFocusTarget } from '../../../components/dialog';

export interface OrganizationProfileInvitation {
id: string;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import * as stylex from '@stylexjs/stylex';
import type { Ref } from 'react';

import { Confirmation } from '../../blocks/confirmation';
import { ActionMenu } from '../../components/action-menu';
import { Avatar } from '../../components/avatar';
import { Button } from '../../components/button';
import { EmptyState } from '../../components/empty-state';
import { Icon } from '../../components/icon';
import { Item } from '../../components/item';
import { Pagination } from '../../components/pagination';
import { Spinner } from '../../components/spinner';
import { Table } from '../../components/table';
import { VisuallyHidden } from '../../components/visually-hidden';
import { useServerDataTable } from '../../hooks/use-server-data-table';
import { fill, useMessages } from '../../localization';
import { mergeStyleProps, themeProps } from '../../props';
import { Confirmation } from '../../../blocks/confirmation';
import { ActionMenu } from '../../../components/action-menu';
import { Avatar } from '../../../components/avatar';
import { Button } from '../../../components/button';
import { EmptyState } from '../../../components/empty-state';
import { Icon } from '../../../components/icon';
import { Item } from '../../../components/item';
import { Pagination } from '../../../components/pagination';
import { Spinner } from '../../../components/spinner';
import { Table } from '../../../components/table';
import { VisuallyHidden } from '../../../components/visually-hidden';
import { useServerDataTable } from '../../../hooks/use-server-data-table';
import { fill, useMessages } from '../../../localization';
import { mergeStyleProps, themeProps } from '../../../props';
import type { InvitationsTableTabViewProps, OrganizationProfileInvitation } from './invitations-table-tab.types';
import { tableTabStyles } from './table-tab.styles';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { useRef, useState } from 'react';

import { useConfirmController } from '../../blocks/confirm';
import { useDebouncedAsync } from '../../hooks/use-debounced-async';
import { useListRemovalFocus } from '../../hooks/use-list-removal-focus';
import { usePendingAction } from '../../hooks/use-pending-action';
import { useLocale, useMessages } from '../../localization';
import { formatDate } from '../../utils/format-date';
import { useConfirmController } from '../../../blocks/confirm';
import { useDebouncedAsync } from '../../../hooks/use-debounced-async';
import { useListRemovalFocus } from '../../../hooks/use-list-removal-focus';
import { usePendingAction } from '../../../hooks/use-pending-action';
import { useLocale, useMessages } from '../../../localization';
import { formatDate } from '../../../utils/format-date';
import type { useMembersTableModel } from './members-table-tab.model';
import type { MembersRoles, OrganizationProfileMember } from './members-table-tab.types';
import { canManageMember } from './members-table-tab.utils';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { RoleResource } from '@clerk/shared/types';
import type { MouseEventHandler, Ref } from 'react';

import type { ConfirmController } from '../../blocks/confirm';
import type { DialogFocusTarget } from '../../components/dialog';
import type { ConfirmController } from '../../../blocks/confirm';
import type { DialogFocusTarget } from '../../../components/dialog';

export type MemberRole = Pick<RoleResource, 'key' | 'name'>;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
import * as stylex from '@stylexjs/stylex';
import type { Ref } from 'react';

import { Confirmation } from '../../blocks/confirmation';
import { ActionMenu } from '../../components/action-menu';
import { Avatar } from '../../components/avatar';
import { Badge } from '../../components/badge';
import { Banner } from '../../components/banner';
import { Button } from '../../components/button';
import { EmptyState } from '../../components/empty-state';
import { Entity } from '../../components/entity';
import { Icon } from '../../components/icon';
import { Pagination } from '../../components/pagination';
import { Select } from '../../components/select';
import { Spinner } from '../../components/spinner';
import { Table } from '../../components/table';
import { VisuallyHidden } from '../../components/visually-hidden';
import { useServerDataTable } from '../../hooks/use-server-data-table';
import { fill, useMessages } from '../../localization';
import { mergeStyleProps, themeProps } from '../../props';
import { Confirmation } from '../../../blocks/confirmation';
import { ActionMenu } from '../../../components/action-menu';
import { Avatar } from '../../../components/avatar';
import { Badge } from '../../../components/badge';
import { Banner } from '../../../components/banner';
import { Button } from '../../../components/button';
import { EmptyState } from '../../../components/empty-state';
import { Entity } from '../../../components/entity';
import { Icon } from '../../../components/icon';
import { Pagination } from '../../../components/pagination';
import { Select } from '../../../components/select';
import { Spinner } from '../../../components/spinner';
import { Table } from '../../../components/table';
import { VisuallyHidden } from '../../../components/visually-hidden';
import { useServerDataTable } from '../../../hooks/use-server-data-table';
import { fill, useMessages } from '../../../localization';
import { mergeStyleProps, themeProps } from '../../../props';
import { styles } from './members-table-tab.styles';
import type { MembersTableTabViewProps, OrganizationProfileMember } from './members-table-tab.types';
import { canManageMember } from './members-table-tab.utils';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { MouseEvent } from 'react';
import { useRef, useState } from 'react';

import { useForm } from '../../components/form';
import { useToastManager } from '../../components/toast';
import { useMessages } from '../../localization';
import { useForm } from '../../../components/form';
import { useToastManager } from '../../../components/toast';
import { useMessages } from '../../../localization';
import type { InviteMembersInput } from './invitations-table-tab.model';
import type { MembersRoles } from './members-table-tab.types';
import type { OrganizationProfileInviteMembersDialogProps } from './organization-profile-invite-members.dialog';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import * as stylex from '@stylexjs/stylex';
import { useId, useRef } from 'react';

import { Button, SubmitButton } from '../../components/button';
import { Card } from '../../components/card';
import type { DialogFocusTarget } from '../../components/dialog';
import { Dialog } from '../../components/dialog';
import { Field } from '../../components/field';
import type { SelectItem } from '../../components/select';
import { Select } from '../../components/select';
import { TagInput } from '../../components/tag-input';
import { fill, useMessages } from '../../localization';
import { Button, SubmitButton } from '../../../components/button';
import { Card } from '../../../components/card';
import type { DialogFocusTarget } from '../../../components/dialog';
import { Dialog } from '../../../components/dialog';
import { Field } from '../../../components/field';
import type { SelectItem } from '../../../components/select';
import { Select } from '../../../components/select';
import { TagInput } from '../../../components/tag-input';
import { fill, useMessages } from '../../../localization';
import { styles } from './organization-profile-invite-members.styles';

const isEmail = (value: string) => /^\S+@\S+\.\S+$/.test(value);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as stylex from '@stylexjs/stylex';

import { space } from '../../tokens.stylex';
import { space } from '../../../tokens.stylex';

export const styles = stylex.create({
labelRow: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { setup } from '../../machine/setup';
import type { DoneInvokeEvent } from '../../machine/types';
import { useMachine } from '../../machine/use-machine';
import { setup } from '../../../machine/setup';
import type { DoneInvokeEvent } from '../../../machine/types';
import { useMachine } from '../../../machine/use-machine';
import type { MembersRoles } from './members-table-tab.types';

interface RolesContext {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ClerkRuntimeError } from '@clerk/shared/error';
import { useOrganization, useSession } from '@clerk/shared/react';

import { useMosaicEnvironment } from '../../hooks/use-mosaic-environment';
import { useMosaicEnvironment } from '../../../hooks/use-mosaic-environment';
import type { MembersRoles } from './members-table-tab.types';

const READ_PERMISSION = 'org:sys_memberships:read';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { MouseEventHandler } from 'react';

import { Panel } from '../../components/panel';
import { Tabs } from '../../components/tabs';
import { useMessages } from '../../localization';
import { themeProps } from '../../props';
import { Panel } from '../../../components/panel';
import { Tabs } from '../../../components/tabs';
import { useMessages } from '../../../localization';
import { themeProps } from '../../../props';
import type { InvitationsTableTabViewProps } from './invitations-table-tab.types';
import { InvitationsTableTabView } from './invitations-table-tab.view';
import type { MembersTableTabViewProps } from './members-table-tab.types';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { useRef } from 'react';

import { useListRemovalFocus } from '../../hooks/use-list-removal-focus';
import { useLocale } from '../../localization';
import { formatDate } from '../../utils/format-date';
import { useListRemovalFocus } from '../../../hooks/use-list-removal-focus';
import { useLocale } from '../../../localization';
import { formatDate } from '../../../utils/format-date';
import type { useRequestsTableModel } from './requests-table-tab.model';
import type { RequestsTableTabViewProps } from './requests-table-tab.types';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as stylex from '@stylexjs/stylex';

import { space } from '../../tokens.stylex';
import { space } from '../../../tokens.stylex';

export const styles = stylex.create({
actions: { gap: space['2'], display: 'flex', justifyContent: 'flex-end' },
Expand Down
Loading
Loading