Skip to content

Commit fda8a39

Browse files
authored
Feat/incubator dialog small changes (#1843)
* Move types to the types file * Remove extra components * Support configuration and useCustomTheme
1 parent 1f91221 commit fda8a39

File tree

8 files changed

+51
-78
lines changed

8 files changed

+51
-78
lines changed
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
/// <reference types="react" />
1+
import React from 'react';
22
import { DialogHeaderProps } from './types';
3-
declare const DialogHeader: (props?: DialogHeaderProps) => JSX.Element | null;
4-
export default DialogHeader;
3+
declare const _default: React.ComponentClass<DialogHeaderProps & {
4+
useCustomTheme?: boolean | undefined;
5+
}, any>;
6+
export default _default;
Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,7 @@
11
import React from 'react';
2-
import { StyleProp, ViewStyle } from 'react-native';
3-
import { ImperativeDialogProps, DialogDirections, DialogDirectionsEnum, DialogHeaderProps, DialogTextProps } from './types';
4-
export { DialogDirections, DialogDirectionsEnum, DialogHeaderProps, DialogTextProps };
5-
export interface DialogProps extends Omit<ImperativeDialogProps, 'initialVisibility'> {
6-
/**
7-
* The visibility of the dialog.
8-
*/
9-
visible?: boolean;
10-
/**
11-
* The Dialog's header
12-
*/
13-
headerProps?: DialogHeaderProps;
14-
/**
15-
* The Dialog`s container style (it is set to {position: 'absolute'})
16-
*/
17-
containerStyle?: StyleProp<ViewStyle>;
18-
}
19-
declare const Dialog: {
20-
(props: DialogProps): JSX.Element;
21-
displayName: string;
22-
directions: typeof import("../panView").PanningDirectionsEnum;
23-
Header: (props?: DialogHeaderProps) => JSX.Element | null;
24-
Text: React.MemoExoticComponent<(props: Pick<DialogHeaderProps, "text">) => JSX.Element | null>;
25-
Knob: React.MemoExoticComponent<(props: Pick<DialogHeaderProps, "showKnob">) => JSX.Element | null>;
26-
Divider: React.MemoExoticComponent<(props: Pick<DialogHeaderProps, "showDivider">) => JSX.Element | null>;
27-
};
28-
export default Dialog;
2+
import { DialogProps, DialogDirections, DialogDirectionsEnum, DialogHeaderProps } from './types';
3+
export { DialogProps, DialogDirections, DialogDirectionsEnum, DialogHeaderProps };
4+
declare const _default: React.ComponentClass<DialogProps & {
5+
useCustomTheme?: boolean | undefined;
6+
}, any>;
7+
export default _default;

generatedTypes/src/incubator/Dialog/types.d.ts

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { PropsWithChildren } from 'react';
2-
import { StyleProp, TextStyle } from 'react-native';
2+
import { StyleProp, TextStyle, ViewStyle } from 'react-native';
33
import { AlignmentModifiers } from '../../commons/modifiers';
44
import { ModalProps } from '../../components/modal';
55
import { ViewProps } from '../../components/view';
@@ -44,9 +44,6 @@ export interface ImperativeDialogMethods {
4444
open: () => void;
4545
close: () => void;
4646
}
47-
/**
48-
* It is available as `Dialog.Text`
49-
*/
5047
export interface DialogTextProps {
5148
/**
5249
* Title
@@ -84,12 +81,24 @@ export interface DialogHeaderProps extends ViewProps {
8481
renderContent?: (props: DialogHeaderProps) => React.ReactElement;
8582
/**
8683
* Show the header's knob (default is true)
87-
* It is available as `Dialog.Knob`
8884
*/
8985
showKnob?: boolean;
9086
/**
9187
* Show the header's divider (default is true)
92-
* It is available as `Dialog.Divider`
9388
*/
9489
showDivider?: boolean;
9590
}
91+
export interface DialogProps extends Omit<ImperativeDialogProps, 'initialVisibility'> {
92+
/**
93+
* The visibility of the dialog.
94+
*/
95+
visible?: boolean;
96+
/**
97+
* The Dialog's header
98+
*/
99+
headerProps?: DialogHeaderProps;
100+
/**
101+
* The Dialog`s container style (it is set to {position: 'absolute'})
102+
*/
103+
containerStyle?: StyleProp<ViewStyle>;
104+
}

generatedTypes/src/incubator/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ export { default as WheelPicker, WheelPickerProps, WheelPickerItemProps } from '
77
export { WheelPickerAlign } from './WheelPicker/types';
88
export { default as PanView, PanViewProps, PanViewDirections, PanViewDismissThreshold } from './panView';
99
export { default as TransitionView, TransitionViewProps, TransitionViewDirection, TransitionViewDirectionEnum, TransitionViewAnimationType } from './TransitionView';
10-
export { default as Dialog, DialogProps, DialogHeaderProps, DialogTextProps } from './Dialog';
10+
export { default as Dialog, DialogProps, DialogHeaderProps } from './Dialog';

src/incubator/Dialog/DialogHeader.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {isEmpty} from 'lodash';
22
import React, {useMemo} from 'react';
3+
import {asBaseComponent} from '../../commons/new';
34
import View from '../../components/view';
45
import DialogText from './DialogText';
56
import DialogKnob from './DialogKnob';
@@ -31,4 +32,4 @@ const DialogHeader = (props: DialogHeaderProps = {}) => {
3132
return null;
3233
};
3334

34-
export default DialogHeader;
35+
export default asBaseComponent<DialogHeaderProps>(DialogHeader);

src/incubator/Dialog/index.tsx

Lines changed: 5 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,13 @@
11
import React, {useRef, useMemo} from 'react';
2-
import {StyleSheet, StyleProp, ViewStyle} from 'react-native';
2+
import {StyleSheet} from 'react-native';
33
import {Spacings, Colors, BorderRadiuses} from 'style';
4-
import {Constants} from '../../commons/new';
4+
import {asBaseComponent, Constants} from '../../commons/new';
55
import {useDidUpdate} from 'hooks';
66
import View from '../../components/view';
77
import ImperativeDialog from './ImperativeDialog';
88
import DialogHeader from './DialogHeader';
9-
import DialogText from './DialogText';
10-
import DialogKnob from './DialogKnob';
11-
import DialogDivider from './DialogDivider';
12-
import {
13-
ImperativeDialogProps,
14-
DialogDirections,
15-
DialogDirectionsEnum,
16-
ImperativeDialogMethods,
17-
DialogHeaderProps,
18-
DialogTextProps
19-
} from './types';
20-
export {DialogDirections, DialogDirectionsEnum, DialogHeaderProps, DialogTextProps};
21-
22-
export interface DialogProps extends Omit<ImperativeDialogProps, 'initialVisibility'> {
23-
/**
24-
* The visibility of the dialog.
25-
*/
26-
visible?: boolean;
27-
/**
28-
* The Dialog's header
29-
*/
30-
headerProps?: DialogHeaderProps;
31-
/**
32-
* The Dialog`s container style (it is set to {position: 'absolute'})
33-
*/
34-
containerStyle?: StyleProp<ViewStyle>;
35-
}
9+
import {DialogProps, DialogDirections, DialogDirectionsEnum, ImperativeDialogMethods, DialogHeaderProps} from './types';
10+
export {DialogProps, DialogDirections, DialogDirectionsEnum, DialogHeaderProps};
3611

3712
const Dialog = (props: DialogProps) => {
3813
const {visible, headerProps, containerStyle, children, ...others} = props;
@@ -64,11 +39,8 @@ const Dialog = (props: DialogProps) => {
6439
Dialog.displayName = 'Incubator.Dialog';
6540
Dialog.directions = DialogDirectionsEnum;
6641
Dialog.Header = DialogHeader;
67-
Dialog.Text = DialogText;
68-
Dialog.Knob = DialogKnob;
69-
Dialog.Divider = DialogDivider;
7042

71-
export default Dialog;
43+
export default asBaseComponent<DialogProps>(Dialog);
7244

7345
const styles = StyleSheet.create({
7446
defaultDialogStyle: {

src/incubator/Dialog/types.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {PropsWithChildren} from 'react';
2-
import {StyleProp, TextStyle} from 'react-native';
2+
import {StyleProp, TextStyle, ViewStyle} from 'react-native';
33
import {AlignmentModifiers} from '../../commons/modifiers';
44
import {ModalProps} from '../../components/modal';
55
import {ViewProps} from '../../components/view';
@@ -48,9 +48,6 @@ export interface ImperativeDialogMethods {
4848
close: () => void;
4949
}
5050

51-
/**
52-
* It is available as `Dialog.Text`
53-
*/
5451
export interface DialogTextProps {
5552
/**
5653
* Title
@@ -89,12 +86,25 @@ export interface DialogHeaderProps extends ViewProps {
8986
renderContent?: (props: DialogHeaderProps) => React.ReactElement;
9087
/**
9188
* Show the header's knob (default is true)
92-
* It is available as `Dialog.Knob`
9389
*/
9490
showKnob?: boolean;
9591
/**
9692
* Show the header's divider (default is true)
97-
* It is available as `Dialog.Divider`
9893
*/
9994
showDivider?: boolean;
10095
}
96+
97+
export interface DialogProps extends Omit<ImperativeDialogProps, 'initialVisibility'> {
98+
/**
99+
* The visibility of the dialog.
100+
*/
101+
visible?: boolean;
102+
/**
103+
* The Dialog's header
104+
*/
105+
headerProps?: DialogHeaderProps;
106+
/**
107+
* The Dialog`s container style (it is set to {position: 'absolute'})
108+
*/
109+
containerStyle?: StyleProp<ViewStyle>;
110+
}

src/incubator/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ export {
1414
TransitionViewDirectionEnum,
1515
TransitionViewAnimationType
1616
} from './TransitionView';
17-
export {default as Dialog, DialogProps, DialogHeaderProps, DialogTextProps} from './Dialog';
17+
export {default as Dialog, DialogProps, DialogHeaderProps} from './Dialog';

0 commit comments

Comments
 (0)