@nexusui/components
Version:
These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.
81 lines (80 loc) • 2.42 kB
TypeScript
import * as React from 'react';
import { StackProps } from '@mui/material/Stack';
import { IPermissionLevel, IShareConfig, IOrgOption } from '../../model';
export type IOrgShareConfig = {
/**
* If true, the org-level permissions panel will be visible
*/
visible?: boolean;
/**
* If true, the org-level permissions will be editable
*/
editable?: boolean;
/**
* If true, the org-level permissions will be disabled
*/
disabled?: boolean;
/**
* The tooltip message if the org-level permissions disabled
*/
disabledMessage?: string;
/**
* The available permission levels that can be selected.
*/
permissionLevels?: ReadonlyArray<IPermissionLevel>;
/**
* The current permission level for the entire organization
*/
permissionLevel?: string;
/**
* Callback function triggered when the permission level of the group is updated.
*/
onPermissionChange?: (permission: string) => void;
/**
* The organizations the current user belongs to
*/
orgOptions?: ReadonlyArray<IOrgOption>;
/**
* The value of the selected organization
*/
selectedOrg?: string;
/**
* Callback function triggered when the organization selection changed.
*/
onOrgChange?: (org: string) => void;
};
export type IOrgShare = {
/**
* The configuration properties for the organization-level permission panel
*
* ```
*
* export type IPermissionLevel = {
* value: string;
* label: string;
* };
* export type IOrgShareConfig = {
* orgName?: string;
* visible?: boolean;
* editable?: boolean;
* permissionLevels?: IPermissionLevel[];
* permissionLevel?: string;
* onPermissionChange?: (permission: string) => void;
* orgOptions?: ReadonlyArray<IOrgOption>;
* selectedOrg?: string;
* onOrgChange?: (org: string) => void;
* }
* ```
*/
orgShareConfig?: IOrgShareConfig;
/**
* Value to determine whether the screen is mobile.
*
*/
isMobile?: boolean;
/**
* Callback function triggered when the permission action si clicked, only available when screen size smaller than sm.
*/
onShowBottomSheet?: (shareConfig: IShareConfig) => void;
};
export declare const OrgShare: React.FC<IOrgShare & StackProps>;