Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
9824925
GAPS-79: update deps
quang-le Feb 6, 2025
9844f86
GAPS-79: migrate components from iaso
quang-le Feb 6, 2025
8121f5d
GAPS-79: WIP TopBar
quang-le Feb 19, 2025
5065fa4
GAPS-79: export api code
quang-le Feb 24, 2025
0ab4f7c
GAPS-79: try to fix failing exports
quang-le Feb 24, 2025
9ee19c4
GAP-79: build
quang-le Feb 24, 2025
b68766f
add .ts tro webpack rules
quang-le Feb 24, 2025
c9acf39
GAP-79: WIP fix exports
quang-le Feb 24, 2025
b81edad
GAPS-79: export useLocale
quang-le Feb 27, 2025
70ada38
GAPS-79: export openSnackBar
quang-le Feb 27, 2025
0e247d2
GAPS-79: fix snackbars export
quang-le Feb 27, 2025
8da7ae5
GAPS-79 export useSnackBars
quang-le Feb 27, 2025
abaef53
GAPS-79: add more exports
quang-le Feb 27, 2025
eac5239
GAPS-79: change apiHooks into hooks builder
quang-le Feb 27, 2025
9b3b2f6
GAPS-79: improve api hooks and snackbar code
quang-le Feb 27, 2025
cec939d
GAPS-79: pass dispatcher to makeApiHooks
quang-le Feb 27, 2025
a79e5e1
GAPS-79: export useFilterState
quang-le Feb 27, 2025
9da1af0
GAPS-79: add more utils
quang-le Feb 27, 2025
da28c06
GAPS-79: add right end component to TopBar
quang-le Mar 5, 2025
18fa9ef
GAPS-79: export checkbox filter types
quang-le Mar 6, 2025
87702d6
GAPS-79: export useCheckBoxFilter
quang-le Mar 6, 2025
4338d28
GAPS-79: enable use of serachParams in useFilterState
quang-le Mar 7, 2025
b44bb16
GAPS-79: export dropdown type
quang-le Mar 7, 2025
751b44c
GAPS-79: add exports
quang-le Mar 7, 2025
add47c4
GAPS-79: export waitFor
quang-le Mar 7, 2025
a66c95f
GAPS-79: WIp cleanup FilterState params
quang-le Mar 7, 2025
7ff09b1
build
quang-le Mar 7, 2025
5f1d4fe
GAPS-79 feat: Add CheckBosSelectGroup
quang-le Mar 10, 2025
080c2c5
GAPS-79: add loading spinner
quang-le Mar 10, 2025
f0a45da
GAPS-79: reduce spinner size
quang-le Mar 10, 2025
c23ee2e
GAPS-79: enable non int values in CheckBoxSelectGroup
quang-le Mar 10, 2025
f6086f3
GAPS-79: fix bug with CheckBoxItem initial value
quang-le Mar 10, 2025
d609ded
GAPS-79: bugfix on CheckBoxSelectGroup
quang-le Mar 10, 2025
a5f8d1e
Merge branch 'IA-2850_react-router_update_dev' into GAPS-79_import_co…
quang-le Apr 3, 2025
1391158
GAPS-79: add custom style to file input
quang-le Apr 3, 2025
265a517
build
quang-le Apr 3, 2025
55cfcfe
GAPS-79: show file names on FileUpload
quang-le Apr 4, 2025
aff4ebb
GAPS-79: re-build
quang-le Apr 4, 2025
7fd34d2
GAPS-79: fix build
quang-le Apr 4, 2025
140c2f3
GAPS-79: add optional sx prop to SimpleModal
quang-le Apr 4, 2025
87a22c0
GAPS-79: add slotProps to SimpleModal
quang-le Apr 4, 2025
d249b91
GAPS-79: add csrf token to requests
quang-le Apr 25, 2025
bcf7479
feat: add FilesUploadContainer
quang-le Apr 29, 2025
aa8d7f3
fix: dragzone height
quang-le Apr 29, 2025
c9eaeb7
fix: set cursor to pointer for dragzone
quang-le Apr 29, 2025
4183231
fix: dragzone height
quang-le Apr 29, 2025
1be0384
fix: dropzone display bug
quang-le Apr 29, 2025
1f6afba
GAPS-79: add onError to Select
quang-le May 5, 2025
96d42a8
GAPS-79: WIP select error debugging
quang-le May 5, 2025
1da7a33
WIP Select debugging
quang-le May 5, 2025
7b293fe
GAPS-79: override Select built in error
quang-le May 7, 2025
1178ff7
GAPS-79: add useAPIValidation hook from iaso
quang-le May 7, 2025
589f702
GAPS-79: export Pagination component
quang-le Jun 3, 2025
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: 1 addition & 1 deletion dist/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/index.js.map

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions dist/locale/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
"blsq.button.label.export": "Export",
"blsq.button.label.noOptions": "No result found",
"blsq.button.label.oneValueNotFound": "Value \"{value}\" not found in possible options",
"blsq.button.label.showLess": "Show less",
"blsq.button.label.showMore": "Show more",
"blsq.button.label.valueNotFound": "Value not found in possible options",
"blsq.comment.button.label.addReply": "Add reply",
"blsq.comment.button.label.collapse": "Hide thread",
Expand All @@ -19,6 +21,8 @@
"blsq.input.label.max": "Maximum",
"blsq.input.label.min": "Minimum",
"blsq.label.cancel": "Cancel",
"blsq.label.close": "Close",
"blsq.label.FilesSelected": "file(s) selected",
"blsq.label.proceed": "proceed",
"blsq.numberInput.error.invalid": "Invalid number",
"blsq.numberInput.error.max": "Input exceeds {value}",
Expand Down Expand Up @@ -126,6 +130,8 @@
"blsq.queryBuilder.valueSourcesPopupTitle": "Select value source",
"blsq.queryBuilder.yes": "Yes",
"blsq.select.label.loadingText": "Loading...",
"blsq.snackBar.copyError": "Copy error",
"blsq.snackBar.error": "An error occurred while saving",
"blsq.table.columnSelect.tooltip": "Select visible columns",
"blsq.table.details": "Details",
"blsq.table.filter.search": "Search",
Expand Down
6 changes: 6 additions & 0 deletions dist/locale/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
"blsq.button.label.export": "Export",
"blsq.button.label.noOptions": "Aucun résultat trouvé",
"blsq.button.label.oneValueNotFound": "Valeur \"{value}\" non trouvée dans la liste d'options",
"blsq.button.label.showLess": "Voir moins",
"blsq.button.label.showMore": "Voir plus",
"blsq.button.label.valueNotFound": "Valeur non trouvée dans la liste d'options",
"blsq.comment.button.label.addReply": "Ajouter une réponse",
"blsq.comment.button.label.collapse": "Masquer le fil",
Expand All @@ -19,6 +21,8 @@
"blsq.input.label.max": "Maximum",
"blsq.input.label.min": "Minimum",
"blsq.label.cancel": "Annuler",
"blsq.label.close": "Fermer",
"blsq.label.FilesSelected": "fichier(s) sélectionné(s)",
"blsq.label.proceed": "continuer",
"blsq.numberInput.error.invalid": "Nombre invalide",
"blsq.numberInput.error.max": "La saisie dépasse {value}",
Expand Down Expand Up @@ -126,6 +130,8 @@
"blsq.queryBuilder.valueSourcesPopupTitle": "Sélectionner la source de valeur",
"blsq.queryBuilder.yes": "Oui",
"blsq.select.label.loadingText": "Chargement en cours...",
"blsq.snackBar.copyError": "Copier l'erreur",
"blsq.snackBar.error": "Impossible de sauvegarder",
"blsq.table.columnSelect.tooltip": "Colonnes visibles",
"blsq.table.details": "Détails",
"blsq.table.filter.search": "Rechercher",
Expand Down
25 changes: 25 additions & 0 deletions dist/types/api/Api.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { Nullable, Optional } from '../types/types';
import { PostArg } from './types';
export declare class ApiError extends Error {
private status;
details: any;
constructor(message: string, response?: Response, json?: Record<string, any>);
}
export declare const tryJson: (response: any) => Promise<any>;
export declare const defaultErrorHandler: (error: any) => Response;
export declare const defaultResponseHandler: (response: any, url: string, method: string) => Promise<any>;
/**
*
A wrapper on JS native fetch method with custom error handling
default responseHandler and errorHAndler can be overridden to add e.g. Sentry logging
**/
export declare const blsqFetch: (resource: RequestInfo, init?: RequestInit, responseHandler?: (response: any, url: string, method: string) => Promise<any>, errorHandler?: (error: any) => Response) => Promise<Response>;
export declare const getRequest: (url: string, signal?: Nullable<AbortSignal>) => Promise<any>;
export declare const getRequestImage: (url: string, signal?: Nullable<AbortSignal>) => Promise<Blob>;
export declare const basePostRequest: (url: string, data?: Record<string, any>, fileData?: Optional<Record<string, Blob | Blob[]>>, headers?: Record<string, string>, signal?: Nullable<AbortSignal>) => Promise<any>;
export declare const postRequest: (arg1: string | PostArg, arg2?: Record<string, any>, arg3?: Record<string, Blob | Blob[]>, arg4?: Record<string, any>, arg5?: AbortSignal | null) => Promise<any>;
export declare const patchRequest: (url: string, data: unknown, signal?: Nullable<AbortSignal>) => Promise<any>;
export declare const deleteRequest: (url: string, signal?: Nullable<AbortSignal>) => Promise<boolean>;
export declare const restoreRequest: (url: string, signal?: Nullable<AbortSignal>) => Promise<boolean>;
export declare const putRequest: (url: string, data: unknown, signal?: Nullable<AbortSignal>) => Promise<any>;
export declare const optionsRequest: (url: string, signal?: Nullable<AbortSignal>) => Promise<any>;
46 changes: 46 additions & 0 deletions dist/types/api/apiHooks.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import { MutationFunction, QueryFunction, QueryKey, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from 'react-query';
import { IntlMessage } from '../types/types';
import { SnackMutationDict, SnackQueryDict } from './types';
import { EventDispatcher } from '../snackbars/EventDispatcher';
/**
*
* @param dispatcher: singleton of EventDispatcher
* @param errorSnackBar
* @param succesfullSnackBar
* @returns
*/
export declare const makeApiHooks: (dispatcher: EventDispatcher, errorSnackBar?: (messageKey: any, messageObject: any, errorLog: any) => {
messageKey: any;
messageObject: any;
options: {
variant: string;
persist: boolean;
};
errorLog: any;
id: string;
}, succesfullSnackBar?: (messageKey: any, messageObject: any) => {
messageKey: any;
messageObject: any;
options: {
variant: string;
persist: boolean;
};
}) => {
useSnackQuery: <QueryFnData = any, Error = unknown, Data = QueryFnData, QueryKeyExtended extends QueryKey = QueryKey>(queryArg: QueryKey | SnackQueryDict<QueryFnData, Data, QueryKeyExtended>, queryFn?: QueryFunction<QueryFnData>, snackErrorMsg?: IntlMessage | undefined, options?: UseQueryOptions<QueryFnData, Error, Data, QueryKeyExtended>, dispatchOnError?: boolean, ignoreErrorCodes?: number[]) => UseQueryResult<Data, Error>;
useSnackMutation: <Data = unknown, Error = unknown, Variables = void, Context = unknown>(mutationArg: MutationFunction<Data, any> | SnackMutationDict<Data, Error, Variables, Context>, snackSuccessMessage?: IntlMessage, snackErrorMsg?: IntlMessage, invalidateQueryKey?: QueryKey | undefined, options?: Omit<UseMutationOptions<Data, Error, Variables, Context>, "mutationFn"> | undefined, showSucessSnackBar?: boolean, ignoreErrorCodes?: number[], successSnackBar?: (msg: IntlMessage, data: any) => {
messageKey: string;
messageObject: any;
options: {
variant: string;
persist: boolean;
};
}) => UseMutationResult<Data, Error, Variables, Context>;
useSnackQueries: <QueryFnData>(queries: {
queryKey: QueryKey;
queryFn: QueryFunction<QueryFnData>;
snackErrorMsg?: IntlMessage;
options: UseQueryOptions;
dispatchOnError?: boolean;
}[]) => Array<UseQueryResult<unknown, unknown>>;
useAbortController: () => AbortController | Record<string, never>;
};
1 change: 1 addition & 0 deletions dist/types/api/constants.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export declare const FETCHING_ABORTED = "Fetching aborted";
18 changes: 18 additions & 0 deletions dist/types/api/messages.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
export declare const MESSAGES: {
permissionError: {
id: string;
defaultMessage: string;
};
defaultMutationApiError: {
id: string;
defaultMessage: string;
};
defaultMutationApiSuccess: {
id: string;
defaultMessage: string;
};
defaultQueryApiSuccess: {
defaultMessage: string;
id: string;
};
};
34 changes: 34 additions & 0 deletions dist/types/api/types.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { MutationFunction, QueryFunction, QueryKey, UseMutationOptions, UseQueryOptions } from 'react-query';
import { IntlMessage } from '../types/types';
export type PostArg = {
url: string;
data: Record<string, any>;
fileData?: Record<string, Blob | Blob[]>;
headers?: Record<string, string>;
signal?: AbortSignal | null;
};
export type SnackMutationDict<Data, Error, Variables, Context> = {
mutationFn: MutationFunction<Data, any>;
snackSuccessMessage?: IntlMessage;
snackErrorMsg?: IntlMessage;
invalidateQueryKey?: QueryKey | undefined;
options?: Omit<UseMutationOptions<Data, Error, Variables, Context>, 'mutationFn'> | undefined;
ignoreErrorCodes?: number[];
showSucessSnackBar?: boolean;
successSnackBar?: (msg: IntlMessage, data: any) => {
messageKey: string;
messageObject: any;
options: {
variant: string;
persist: boolean;
};
};
};
export type SnackQueryDict<QueryFnData, Data, QueryKeyExtended extends QueryKey> = {
queryKey: QueryKey;
queryFn: QueryFunction<QueryFnData>;
snackErrorMsg?: IntlMessage;
options?: UseQueryOptions<QueryFnData, Error, Data, QueryKeyExtended>;
dispatchOnError?: boolean;
ignoreErrorCodes?: number[];
};
1 change: 1 addition & 0 deletions dist/types/api/utils.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export declare const cleanupParams: (params: any) => any;
67 changes: 67 additions & 0 deletions dist/types/api/validation.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
import { FormikErrors, FormikTouched } from 'formik';
import { UseMutateAsyncFunction } from 'react-query';
import { TestConfig } from 'yup';
import { IntlFormatMessage, IntlMessage } from '../types/types';
export type ValidationError = Record<string, string> | null | undefined;
/**
* The params passed to the hook
* mutationFn is mutateAsync from react-query's useMutation
*
* convertError is for cases when the field keys of the api response don't match the field keys of your formik values
*/
type Params = {
mutationFn: UseMutateAsyncFunction<any, any, any>;
onSuccess?: any;
onError?: any;
onCatch?: any;
convertError?: (errorsDict: Record<string, string>) => Record<string, string>;
};
/**
* HOW TO USE:
*
* Pass a mutateAsync function from useMutation or useSnackMutation to useApiErrorValidation.
* The hook will save the payload sent to the API and the errors received in its state and return them along with a function
* that can then be passed as useFormik's onSubmit parameter.
* Apart from saving the payload and errors to the hook's state, that function will also throw if the error is not in the 400 range
*
* onSuccess and onError have the same use as with useMutation/useSnackMutation
*
* onCatch allows you to add custom error management
*
* payload and errors can then be passed to makeAPIErrorValidator to generate a `test()` that can be used
* in a validation hook based on yup, in order to manage backend errors to your form management
*
*/
/**
* T is the type of the payload sent to the API
* K is the type of the response
* void in return type Promise<void|K> is for when error is caught
*
*The hook assumes that all fields have their own error and does not handle non_field_errors
*
*/
type ApiValidationUtils<T extends Record<string, any>, K extends Record<string, any>> = {
payload: T;
apiErrors: Record<string, string>;
mutation: (values: T, helpers: any) => Promise<void | K>;
};
export declare const useApiErrorValidation: <T extends Record<string, any>, K extends Record<string, any>>({ mutationFn, onSuccess, onError, onCatch, convertError, }: Params) => ApiValidationUtils<T, K>;
export declare const useAPIErrorValidator: <T>(errors: ValidationError, payload: T) => ((fieldKey: string) => TestConfig<any, Record<string, any>>);
type GetErrorParams = {
formatMessage: IntlFormatMessage;
touched: Record<string, boolean> | FormikTouched<any>;
errors: Record<string, string> | FormikErrors<any>;
messages: Record<string, IntlMessage>;
};
/**
* Takes touched and errors from formik
* messages is the usual MESSAGES dict of translations
* formatMessage should come from useSafeIntl
*
* returns a callback that can be called in the `errors`props of an InputComponent to provide a translated error message
*
* touched is used to prevent setting the fields in error before the user has had a chance to type
*
*/
export declare const useTranslatedErrors: ({ formatMessage, touched, errors, messages, }: GetErrorParams) => ((keyValue: string) => string[]);
export {};
9 changes: 9 additions & 0 deletions dist/types/components/Modal/SimpleModal.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { FunctionComponent, ReactNode } from 'react';
import { SxProps } from '@mui/material';
import { IntlMessage } from '../../types/types';
export type MuiWidth = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
export type SimpleDialogProps = {
Expand All @@ -14,5 +15,13 @@ export type SimpleDialogProps = {
closeDialog: () => void;
}>;
backdropClick?: boolean;
sx?: SxProps;
slotProps?: {
backdrop?: Function | Record<string, any>;
container?: Function | Record<string, any>;
paper?: Function | Record<string, any>;
root?: Function | Record<string, any>;
transition?: Function | Record<string, any>;
};
};
export declare const SimpleModal: FunctionComponent<SimpleDialogProps>;
7 changes: 7 additions & 0 deletions dist/types/components/PageError/PageError.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { FunctionComponent } from 'react';
type Props = {
errorCode: string;
iconColor: string;
};
export declare const PageError: FunctionComponent<Props>;
export {};
19 changes: 19 additions & 0 deletions dist/types/components/PageError/messages.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
declare const MESSAGES: {
labelError: {
id: string;
defaultMessage: string;
};
notAuthenticated: {
id: string;
defaultMessage: string;
};
notFound: {
id: string;
defaultMessage: string;
};
unauthorized: {
id: string;
defaultMessage: string;
};
};
export default MESSAGES;
4 changes: 2 additions & 2 deletions dist/types/components/buttons/AddButton/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ declare const styledAddButton: React.JSXElementConstructor<Omit<Pick<Pick<{
id: PropTypes.Requireable<string>;
dataTestId: PropTypes.Requireable<string>;
size: PropTypes.Requireable<string>;
}>, "size" | "id" | "message" | "dataTestId" | PropTypes.RequiredKeys<{
}>, "id" | "size" | "message" | "dataTestId" | PropTypes.RequiredKeys<{
classes: PropTypes.Validator<object>;
onClick: PropTypes.Validator<(...args: any[]) => any>;
message: PropTypes.Requireable<object>;
Expand All @@ -28,8 +28,8 @@ declare const styledAddButton: React.JSXElementConstructor<Omit<Pick<Pick<{
dataTestId: PropTypes.Requireable<string>;
size: PropTypes.Requireable<string>;
}>> & {
size?: string | null | undefined;
id?: string | null | undefined;
size?: string | null | undefined;
message?: object | null | undefined;
dataTestId?: string | null | undefined;
} & {}, "classes"> & import("@mui/styles").StyledComponentProps<string> & object>;
Expand Down
2 changes: 1 addition & 1 deletion dist/types/components/comments/AddComment/styles.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ export function styles(theme: any): {
backgroundColor: string;
};
};
export const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"button" | "left" | "right" | "center" | "textArea" | "textAreaContainer" | "commentConfirmButton">;
export const useStyles: (props?: any) => import("@mui/styles").ClassNameMap<"button" | "center" | "left" | "right" | "textArea" | "textAreaContainer" | "commentConfirmButton">;
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { FunctionComponent } from 'react';
import { CheckBoxFilterArgs, DropdownOptions, FilterState } from '../../..';
type Props = Omit<CheckBoxFilterArgs, 'handleChange'> & {
required?: boolean;
disabled?: boolean;
option: DropdownOptions<number | string>;
filterState: FilterState;
valueIsString?: boolean;
};
/** A checkbox meant to be used with CheckBoxSelectGroup to make a filter that uses checboxes to select a lsit of items
* the same way a SelectInput would function.
* @component
* @param option {DropdownOptions<number>} - The label should come already translated
* @param keyValue {string} - the key used to retrieve the value in a FilterState.filters object
* @param initialValue {boolean}
* @param valueIsString {boolean} - set to true if the `value`of the options is not a number or can't be parsed with parseInt
* @param filterState {FilterState} - The parent filter's state. Typically generated using `useFilterState`
* @param required {boolean} - defaults to `false`
* @param disabled {boolean} - defaults to `false`
*/
export declare const CheckBoxFilterItem: FunctionComponent<Props>;
export {};
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { FunctionComponent } from 'react';
import { DropdownOptions, FilterState } from '../../..';
type Props = {
options?: DropdownOptions<number>[];
isLoading?: boolean;
keyValue: string;
filterState: FilterState;
defaultItemCount?: number;
title?: string;
valueIsString?: boolean;
};
/** A group of checkboxes that constitute a filter akin to a SelectInput. State and options are received from the parent. Each CheckBoxSelectGroup constitues one filter,
* i.e one entry in a `FilterState.filters` object.
* @component
* @param title {string} - Title to be displayed above the group of checkboxes. Typically the filter name
* @param keyValue {string} - the key used to retrieve the value in a FilterState.filters object
* @param filterState {FilterState} - The parent filter's state. Typically generated using `useFilterState`
* @param valueIsString {boolean} - set to true if the `value`of the options is not a number or can't be parsed with parseInt
* @param options {DropdownOptions<number>[]} - The list of possible values for the filter. Each element in the list corresponds to a checkbox
* @param isLoading {boolean} - Can be used when options are fetched asynchronously to indicate data is being loaded
* @param defaultItemCount (number) - The amount of items to show when `options`has many elements. If options.length > defaultItemCount, a "show more" button will be displayed. Defaults to 5
*/
export declare const CheckBoxSelectGroup: FunctionComponent<Props>;
export {};
10 changes: 10 additions & 0 deletions dist/types/components/inputs/CheckBoxSelectGroup/messages.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
export declare const MESSAGES: {
showMore: {
id: string;
defaultMessage: string;
};
showLess: {
id: string;
defaultMessage: string;
};
};
2 changes: 2 additions & 0 deletions dist/types/components/inputs/CustomInput/CustomInput.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { FunctionComponent, ReactNode } from 'react';
import { SxProps } from '@mui/material';
export declare const useCustomInputTextStyle: (props?: any) => import("@mui/styles").ClassNameMap<"textStyle">;
type Props = {
placeholder: string;
Expand All @@ -8,6 +9,7 @@ type Props = {
children?: ReactNode;
onClick?: () => void;
icon?: ReactNode;
sx?: SxProps;
};
export declare const CustomInput: FunctionComponent<Props>;
export {};
Loading