Skip to content

Infra/textfield complete migration #2806

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Nov 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 0 additions & 1 deletion demo/src/screens/SettingsScreen.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ class SettingsScreen extends Component {
value={defaultScreen?.value}
label={'Default Screen'}
onChange={this.setDefaultScreen}
migrateTextField
>
{_.map(filteredScreens, screen => (
<Picker.Item key={screen.value} value={screen.value} label={screen.label}/>
Expand Down
5 changes: 0 additions & 5 deletions demo/src/screens/componentScreens/DateTimePickerScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,12 @@ export default class DateTimePickerScreen extends Component<{}, State> {
<View padding-page>
<Text text40>Date Time Picker</Text>
<DateTimePicker
migrateTextField
containerStyle={{marginVertical: 20}}
label={'Date'}
placeholder={'Select a date'}
// value={new Date('October 13, 2014')}
/>
<DateTimePicker
migrateTextField
mode={'time'}
label={'Time'}
placeholder={'Select time'}
Expand All @@ -80,14 +78,12 @@ export default class DateTimePickerScreen extends Component<{}, State> {
Disabled
</Text>
<DateTimePicker
migrateTextField
containerStyle={{marginBottom: 20}}
editable={false}
label={'Date'}
placeholder={'Select a date'}
/>
<DateTimePicker
migrateTextField
editable={false}
mode={'time'}
label={'Time'}
Expand All @@ -108,7 +104,6 @@ export default class DateTimePickerScreen extends Component<{}, State> {
</View>
</View>
<DateTimePicker
migrateTextField
containerStyle={{marginVertical: 20}}
renderInput={this.renderCustomInput}
mode={mode}
Expand Down
5 changes: 5 additions & 0 deletions demo/src/screens/componentScreens/TextFieldScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ export default class TextFieldScreen extends Component {
<Text h3 blue50 marginV-s4>
Default
</Text>
{/* @ts-expect-error */}
<TextField ref={this.input} label="Name" placeholder="Enter full name"/>

<Text h3 blue50 marginV-s4>
Expand Down Expand Up @@ -88,6 +89,7 @@ export default class TextFieldScreen extends Component {
</Text>

<TextField
// @ts-expect-error
ref={this.input2}
placeholder="Enter search term"
text70
Expand All @@ -97,6 +99,7 @@ export default class TextFieldScreen extends Component {
/>

<TextField
// @ts-expect-error
ref={this.input2}
placeholder="Enter URL"
floatingPlaceholder
Expand All @@ -111,6 +114,7 @@ export default class TextFieldScreen extends Component {
/>

<TextField
// @ts-expect-error
ref={this.input2}
placeholder="Enter weight"
text70
Expand Down Expand Up @@ -162,6 +166,7 @@ export default class TextFieldScreen extends Component {

<View row top marginT-s4>
<TextField
// @ts-expect-error
ref={this.inputWithValidation}
placeholder="Enter full name"
validate="required"
Expand Down
2 changes: 1 addition & 1 deletion src/components/chipsInput/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {StyleSheet, NativeSyntheticEvent, TextInputKeyPressEventData} from 'reac
import {isUndefined, map} from 'lodash';
import {Constants} from '../../commons/new';
import {useCombinedRefs} from '../../hooks';
import TextField, {TextFieldProps} from '../../incubator/TextField';
import TextField, {TextFieldProps} from '../textField';
import Chip, {ChipProps} from '../chip';

const removeIcon = require('./assets/xSmall.png');
Expand Down
11 changes: 1 addition & 10 deletions src/components/dateTimePicker/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,11 @@ import {useDidUpdate} from '../../hooks';
import {Colors} from '../../style';
import Assets from '../../assets';
import {Constants, asBaseComponent, BaseComponentInjectedProps} from '../../commons/new';
import TextField from '../textField/TextFieldMigrator';
import TextField, {TextFieldProps, TextFieldMethods} from '../textField';
import {DialogProps} from '../dialog';
import View from '../view';
import Button from '../button';
import ExpandableOverlay, {ExpandableOverlayMethods, RenderCustomOverlayProps} from '../../incubator/expandableOverlay';
import type {TextFieldProps, TextFieldMethods} from '../../incubator/TextField';
import useOldApi, {OldApiProps} from './useOldApi';

export type DateTimePickerMode = 'date' | 'time';
Expand Down Expand Up @@ -91,10 +90,6 @@ export type DateTimePickerProps = OldApiProps & Omit<TextFieldProps, 'value' | '
* The component testID
*/
testID?: string;
/**
* Should migrate to the new TextField implementation
*/
migrateTextField?: boolean;
};

type DateTimePickerPropsInternal = DateTimePickerProps & BaseComponentInjectedProps;
Expand Down Expand Up @@ -131,7 +126,6 @@ const DateTimePicker = forwardRef((props: DateTimePickerPropsInternal, ref: Forw
dialogProps,
headerStyle,
testID,
migrateTextField = true,
...others
} = props;

Expand Down Expand Up @@ -315,11 +309,8 @@ const DateTimePicker = forwardRef((props: DateTimePickerPropsInternal, ref: Forw
{...others}
// @ts-expect-error
ref={textField}
migrate={migrateTextField}
testID={testID}
editable={editable}
// @ts-expect-error should be remove after completing TextField migration
expandable={migrateTextField ? undefined : !!others.renderExpandableInput}
value={getStringValue()}
/>
)}
Expand Down
2 changes: 1 addition & 1 deletion src/components/numberInput/NumberInput.driver.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {NumberInputProps} from './index';
import {ComponentDriver, ComponentDriverArgs} from '../../testkit/Component.driver';
import {TextFieldDriver} from '../../incubator/TextField/TextField.driver';
import {TextFieldDriver} from '../textField/TextField.driver';

export class NumberInputDriver extends ComponentDriver<NumberInputProps> {
private readonly maskedInputDriver: TextFieldDriver;
Expand Down
2 changes: 1 addition & 1 deletion src/components/numberInput/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {StyleSheet, StyleProp, ViewStyle, TextStyle} from 'react-native';
import {useDidUpdate, useThemeProps} from '../../hooks';
import {Colors} from '../../style';
import MaskedInput from '../maskedInput/new';
import TextField, {TextFieldProps, TextFieldRef} from '../../incubator/TextField';
import TextField, {TextFieldProps, TextFieldRef} from '../textField';
import View from '../view';
import Text from '../text';
import {parseInput, generateOptions, getInitialNumber, Options, NumberInputData} from './Presenter';
Expand Down
2 changes: 1 addition & 1 deletion src/components/picker/helpers/useImperativePickerHandle.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, {useImperativeHandle, useRef} from 'react';
import {ExpandableOverlayMethods} from '../../../incubator/expandableOverlay';
import {TextFieldMethods} from '../../../incubator/TextField';
import {TextFieldMethods} from '../../textField';

const useImperativePickerHandle = (ref: React.Ref<any>,
expandableRef: React.MutableRefObject<ExpandableOverlayMethods | null>) => {
Expand Down
12 changes: 3 additions & 9 deletions src/components/picker/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ import {Typography} from 'style';
import {useThemeProps} from 'hooks';
import {Constants} from '../../commons/new';
import ExpandableOverlay, {ExpandableOverlayProps, ExpandableOverlayMethods} from '../../incubator/expandableOverlay';
// @ts-expect-error
import {TextField} from '../inputs';
import TextFieldMigrator from '../textField/TextFieldMigrator';
import TextField from '../textField';
import Icon from '../icon';
import View from '../view';
import Text from '../text';
Expand Down Expand Up @@ -87,7 +85,6 @@ const Picker = React.forwardRef((props: PickerProps, ref) => {
useSafeArea,
// TODO: Remove migrate props and migrate code
migrate = true,
migrateTextField = true,
accessibilityLabel,
accessibilityHint,
items: propItems,
Expand Down Expand Up @@ -301,9 +298,7 @@ const Picker = React.forwardRef((props: PickerProps, ref) => {
// @ts-expect-error - hopefully will be solved after the picker migration ends
renderPicker(value, label)
) : (
<TextFieldMigrator
migrate={migrateTextField}
// customWarning="RNUILib Picker component's internal TextField will soon be replaced with a new implementation, in order to start the migration - please pass to Picker the 'migrateTextField' prop"
<TextField
// @ts-expect-error
ref={pickerRef}
// {...textInputProps}
Expand All @@ -321,7 +316,7 @@ const Picker = React.forwardRef((props: PickerProps, ref) => {
// topBarProps={undefined}
>
{renderPickerInnerInput()}
</TextFieldMigrator>
</TextField>
)}
</ExpandableOverlay>
</PickerContext.Provider>
Expand All @@ -331,7 +326,6 @@ const Picker = React.forwardRef((props: PickerProps, ref) => {
// @ts-expect-error
Picker.Item = PickerItem;
Picker.defaultProps = {
...TextField.defaultProps,
mode: PickerModes.SINGLE
};
Picker.displayName = 'Picker';
Expand Down
6 changes: 1 addition & 5 deletions src/components/picker/types.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {ExpandableOverlayProps, ExpandableOverlayMethods} from '../../incubator/
import {ModalTopBarProps} from '../modal/TopBar';
// TODO: Replace with new TextField Props after migration to new TextField has completed
// import {TextFieldProps} from '../../../typings/components/Inputs';
import {TextFieldMethods, TextFieldProps as NewTextFieldProps} from '../../incubator/TextField';
import {TextFieldMethods, TextFieldProps as NewTextFieldProps} from '../textField';
import {TouchableOpacityProps} from '../touchableOpacity';

// Note: enum values are uppercase due to legacy
Expand Down Expand Up @@ -54,10 +54,6 @@ export type PickerBaseProps = Omit<NewTextFieldProps, 'value' | 'onChange'> & {
* Temporary prop required for migration to Picker's new API
*/
migrate?: boolean;
/**
* Temporary prop required for inner text field migration
*/
migrateTextField?: boolean;
/**
* Pass for different field type UI (form, filter or settings)
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, {useContext} from 'react';
import {StyleSheet} from 'react-native';
import _ from 'lodash';
import Text from '../../components/text';
import Text from '../text';
import FieldContext from './FieldContext';
import {CharCounterProps} from './types';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import {FloatingPlaceholderProps, ValidationMessagePosition} from './types';
import {getColorByState, shouldPlaceholderFloat} from './Presenter';
import {Colors} from '../../style';
import {Constants} from '../../commons/new';
import View from '../../components/view';
import Text from '../../components/text';
import View from '../view';
import Text from '../text';
import FieldContext from './FieldContext';

const FLOATING_PLACEHOLDER_SCALE = 0.875;
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import React, {useContext, useMemo} from 'react';
import {StyleSheet} from 'react-native';
import {Colors} from '../../style';
import Text from '../../components/text';
import Text from '../text';
import {ColorType, LabelProps, ValidationMessagePosition} from './types';
import {getColorByState} from './Presenter';
import FieldContext from './FieldContext';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import _ from 'lodash';
import {Colors} from './../../style';
import {Colors} from '../../style';
import {ColorType, Validator, FieldContextType, FloatingPlaceholderProps} from './types';
// TODO: Fix this import after moving all TextField types to a single file after we move to the new docs
import {TextFieldProps} from './index';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import _ from 'lodash';
import {TextFieldProps} from './types';
import {ComponentDriver, ComponentDriverArgs} from '../../testkit/Component.driver';
import {TextDriver} from '../../components/text/Text.driver';
import {TextDriver} from '../text/Text.driver';


export class TextFieldDriver extends ComponentDriver<TextFieldProps> {
Expand Down
80 changes: 0 additions & 80 deletions src/components/textField/TextFieldMigrator.tsx

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, {useContext, useMemo} from 'react';
import {StyleSheet} from 'react-native';
import Text from '../../components/text';
import Text from '../text';
import FieldContext from './FieldContext';
import {getRelevantValidationMessage} from './Presenter';
import {ValidationMessageProps} from './types';
Expand Down
Loading