Skip to content

Commit 06c7f5b

Browse files
authored
support renderHeader in useWheelPicker mode (#3165)
* support renderHeader in useWheelPicker mode * code refactor
1 parent cb0295a commit 06c7f5b

File tree

1 file changed

+26
-21
lines changed

1 file changed

+26
-21
lines changed

src/components/picker/PickerItemsList.tsx

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ const PickerItemsList = (props: PickerItemsListProps) => {
110110

111111
const renderCancel = () => {
112112
const {cancelButtonProps, cancelLabel, onCancel} = topBarProps ?? {};
113-
114113
return (
115114
<>
116115
{cancelLabel ? (
@@ -124,19 +123,29 @@ const PickerItemsList = (props: PickerItemsListProps) => {
124123
);
125124
};
126125

127-
const renderWheel = () => {
128-
const {cancelButtonProps, cancelLabel, doneLabel, title, titleStyle, containerStyle, useSafeArea} =
126+
const renderPickerHeader = () => {
127+
const {cancelButtonProps, cancelLabel, doneLabel, title, titleStyle, containerStyle, onDone, onCancel} =
129128
topBarProps ?? {};
130-
131-
return (
132-
<View useSafeArea={useSafeArea}>
129+
if (renderHeader) {
130+
return renderHeader?.({onDone, onCancel});
131+
} else if (useWheelPicker) {
132+
return (
133133
<View row spread padding-page style={containerStyle}>
134134
{(cancelButtonProps || cancelLabel) && renderCancel()}
135135
<Text style={titleStyle}>{title}</Text>
136136
<Text text70 $textPrimary accessibilityRole={'button'} onPress={() => context.onPress(wheelPickerValue)}>
137137
{doneLabel ?? 'Select'}
138138
</Text>
139139
</View>
140+
);
141+
} else if (!useDialog || mode === PickerModes.MULTI) {
142+
return <Modal.TopBar testID={`${props.testID}.topBar`} {...topBarProps}/>;
143+
}
144+
};
145+
146+
const renderWheel = () => {
147+
return (
148+
<View useSafeArea={useSafeArea}>
140149
<WheelPicker
141150
flatListProps={listProps}
142151
initialValue={context.value as PickerSingleValue}
@@ -147,25 +156,21 @@ const PickerItemsList = (props: PickerItemsListProps) => {
147156
);
148157
};
149158

150-
const renderPickerHeader = () => {
151-
if (renderHeader) {
152-
return renderHeader?.({onDone: topBarProps?.onDone, onCancel: topBarProps?.onCancel});
153-
} else if (!useDialog || mode === PickerModes.MULTI) {
154-
return <Modal.TopBar testID={`${props.testID}.topBar`} {...topBarProps}/>;
155-
}
159+
const renderContent = () => {
160+
return useWheelPicker ? (
161+
renderWheel()
162+
) : (
163+
<>
164+
{renderSearchInput()}
165+
{renderList()}
166+
</>
167+
);
156168
};
157169

158170
return (
159171
<View bg-$backgroundDefault style={wrapperContainerStyle} useSafeArea={useSafeArea}>
160-
{!useWheelPicker && (
161-
<>
162-
{renderPickerHeader()}
163-
{renderSearchInput()}
164-
{renderList()}
165-
</>
166-
)}
167-
168-
{useWheelPicker && renderWheel()}
172+
{renderPickerHeader()}
173+
{renderContent()}
169174
</View>
170175
);
171176
};

0 commit comments

Comments
 (0)