Skip to content

Commit a86d7ee

Browse files
authored
Incubator.Dialog - header refactor (#1845)
* Incubator.Dialog - header refactor * Rename to headerContent
1 parent fda8a39 commit a86d7ee

File tree

7 files changed

+34
-63
lines changed

7 files changed

+34
-63
lines changed

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

Lines changed: 0 additions & 4 deletions
This file was deleted.

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

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/incubator/Dialog/DialogDivider.tsx

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/incubator/Dialog/DialogHeader.tsx

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,42 @@
11
import {isEmpty} from 'lodash';
22
import React, {useMemo} from 'react';
3+
import {StyleSheet} from 'react-native';
34
import {asBaseComponent} from '../../commons/new';
5+
import {Spacings, Colors, BorderRadiuses, Dividers} from 'style';
46
import View from '../../components/view';
5-
import DialogText from './DialogText';
6-
import DialogKnob from './DialogKnob';
7-
import DialogDivider from './DialogDivider';
7+
import HeaderContent from './HeaderContent';
88
import {DialogHeaderProps} from './types';
99

1010
const DialogHeader = (props: DialogHeaderProps = {}) => {
1111
const {text = {}, renderContent, showKnob = true, showDivider = true, ...others} = props;
1212

13-
const _renderContent = useMemo(() => {
13+
const knob = useMemo(() => {
14+
if (showKnob) {
15+
return <View style={styles.knob}/>;
16+
}
17+
}, [showKnob]);
18+
19+
const headerContent = useMemo(() => {
1420
if (renderContent) {
1521
return renderContent(props);
1622
}
1723

18-
return <DialogText text={text}/>;
24+
return <HeaderContent text={text}/>;
1925
// eslint-disable-next-line react-hooks/exhaustive-deps
2026
}, [renderContent, text]);
2127

28+
const divider = useMemo(() => {
29+
if (showDivider) {
30+
return <View style={Dividers.d10}/>;
31+
}
32+
}, [showDivider]);
33+
2234
if (!isEmpty(props)) {
2335
return (
2436
<View {...others}>
25-
<DialogKnob showKnob={showKnob}/>
26-
{_renderContent}
27-
<DialogDivider showDivider={showDivider}/>
37+
{knob}
38+
{headerContent}
39+
{divider}
2840
</View>
2941
);
3042
}
@@ -33,3 +45,15 @@ const DialogHeader = (props: DialogHeaderProps = {}) => {
3345
};
3446

3547
export default asBaseComponent<DialogHeaderProps>(DialogHeader);
48+
49+
const styles = StyleSheet.create({
50+
knob: {
51+
alignSelf: 'center',
52+
width: 44,
53+
height: Spacings.s1,
54+
marginTop: Spacings.s2,
55+
marginBottom: Spacings.s2,
56+
backgroundColor: Colors.grey60,
57+
borderRadius: BorderRadiuses.br10
58+
}
59+
});

src/incubator/Dialog/DialogKnob.tsx

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/incubator/Dialog/DialogText.tsx renamed to src/incubator/Dialog/HeaderContent.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import View from '../../components/view';
44
import Text from '../../components/text';
55
import {DialogHeaderProps} from './types';
66

7-
const DialogText = (props: Pick<DialogHeaderProps, 'text'>) => {
7+
const HeaderContent = (props: Pick<DialogHeaderProps, 'text'>) => {
88
const {text = {}} = props;
99
const {title, titleStyle, titleProps, subtitle, subtitleStyle, subtitleProps} = text;
1010

@@ -28,4 +28,4 @@ const DialogText = (props: Pick<DialogHeaderProps, 'text'>) => {
2828
return null;
2929
};
3030

31-
export default React.memo(DialogText);
31+
export default React.memo(HeaderContent);

0 commit comments

Comments
 (0)