Skip to content

Commit 431cad3

Browse files
author
sqlProvider
committed
[Type Error] fix #1
1 parent 61bb5f9 commit 431cad3

File tree

3 files changed

+20
-15
lines changed

3 files changed

+20
-15
lines changed

src/Button.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ import { ButtonSize, Styles } from './Styles';
1818

1919
export class Button extends Component<IButton.IProps, IButton.IState> {
2020
private buttonSize: { height: number };
21-
private prevState: IButton.IButtonState;
22-
private nextState: IButton.IButtonState;
21+
private prevState: IButton.IButtonStateWithPrivate;
22+
private nextState: IButton.IButtonStateWithPrivate;
2323
private stateLength: number;
2424
constructor(props: IButton.IProps) {
2525
super(props);
@@ -280,7 +280,7 @@ export class Button extends Component<IButton.IProps, IButton.IState> {
280280
return containers;
281281
}
282282

283-
private renderButtonInside(state: IButton.IButtonState): Array<JSX.Element> {
283+
private renderButtonInside(state: IButton.IButtonStateWithPrivate): Array<JSX.Element> {
284284
const activeState = state || this.state.states[this.state.selectedState];
285285
const buttonInside: Array<JSX.Element> = [];
286286

@@ -295,7 +295,7 @@ export class Button extends Component<IButton.IProps, IButton.IState> {
295295
return buttonInside;
296296
}
297297

298-
private renderIcon(activeState: IButton.IButtonState): JSX.Element {
298+
private renderIcon(activeState: IButton.IButtonStateWithPrivate): JSX.Element {
299299
if (activeState.icon === undefined) return;
300300

301301
const {
@@ -335,7 +335,7 @@ export class Button extends Component<IButton.IProps, IButton.IState> {
335335
);
336336
}
337337

338-
private renderText(activeState: IButton.IButtonState): JSX.Element {
338+
private renderText(activeState: IButton.IButtonStateWithPrivate): JSX.Element {
339339
return (
340340
<Text style={[
341341
Styles.textStyle,
@@ -349,7 +349,7 @@ export class Button extends Component<IButton.IProps, IButton.IState> {
349349
);
350350
}
351351

352-
private renderSpinner(state: IButton.IButtonState): JSX.Element {
352+
private renderSpinner(state: IButton.IButtonStateWithPrivate): JSX.Element {
353353
return (
354354
<ActivityIndicator
355355
key={`reactNativeAnimetableButton_Spinner_${state._index}`}
@@ -404,8 +404,8 @@ export class Button extends Component<IButton.IProps, IButton.IState> {
404404
this.state.onLongPress(event, activeState);
405405
}
406406

407-
private serializeProps(callFromRender: boolean = false): { defaultProps: IButton.IProps, defaultButtonState: IButton.IButtonState } {
408-
const defaultButtonState: IButton.IButtonState = {
407+
private serializeProps(callFromRender: boolean = false): IButton.ISerializeProps {
408+
const defaultButtonState: IButton.IButtonStateWithPrivate = {
409409
buttonInsideContainerStyle: {
410410
alignItems: 'center',
411411
backgroundColor: 'rgba(0,0,0,0)',
@@ -440,7 +440,7 @@ export class Button extends Component<IButton.IProps, IButton.IState> {
440440
};
441441

442442
const defaultProps: IButton.IProps = {
443-
...defaultButtonState,
443+
...defaultButtonState as IButton.IButtonState,
444444
accessibilityLabel: 'reactNativeAnimetableButton',
445445
buttonContainerStyle: {
446446
backgroundColor: 'rgba(0,0,0,0)',

src/IButton.d.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ export interface RecursiveArray<T> {
1717
}
1818

1919
export module IButton {
20-
export interface IProps extends IButtonState{
20+
export interface IProps extends IButtonState {
2121
// Container Settings
2222
accessibilityLabel?: string;
2323
buttonContainerStyle?: ViewStyle;
2424

2525
// State Settings
2626
selectedState?: string;
2727
states: {
28-
[key: string]: IButtonState;
28+
[key: string]: IButtonStateWithPrivate;
2929
};
3030

3131
// Touchable Settings
@@ -87,9 +87,16 @@ export module IButton {
8787
// Events
8888
onLongPress(event?: GestureResponderEvent, activeState?: IButtonState): boolean | void;
8989
onPress(event?: GestureResponderEvent, activeState?: IButtonState): boolean | void;
90+
}
9091

92+
export interface IButtonStateWithPrivate extends IButtonState {
9193
// Private
9294
_index?: number;
9395
_backgroundColor?: string;
9496
}
97+
98+
export interface ISerializeProps {
99+
defaultProps: IProps;
100+
defaultButtonState: IButtonStateWithPrivate;
101+
}
95102
}

src/index.d.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ import * as RN from 'react-native';
55
declare module "react-native-animatable-button" {
66
export interface ButtonStatic extends RN.NativeMethodsMixin, React.ComponentClass<IButton.IProps> { }
77

8-
var Button: ButtonStatic;
9-
type Button = ButtonStatic;
10-
11-
export default Button;
8+
export var Button: ButtonStatic;
9+
export type Button = ButtonStatic;
1210
}

0 commit comments

Comments
 (0)