GithubHelp home page GithubHelp logo

Comments (3)

github-actions avatar github-actions commented on June 2, 2024

@amorimcode: hello! 👋

This issue is being automatically closed because it does not follow the issue template.

from react-native-bottom-sheet.

Desintegrator avatar Desintegrator commented on June 2, 2024

@amorimcode have you found solution?

from react-native-bottom-sheet.

amorimcode avatar amorimcode commented on June 2, 2024

Yes @Desintegrator

you should use the library input on bottom sheet

https://ui.gorhom.dev/components/bottom-sheet/components/bottomsheettextinput/

i did some working arround with react-native-paper input

import { BottomSheetTextInput } from "@gorhom/bottom-sheet";
import { useState } from "react";
import { TextInputProps, TextStyle } from "react-native";
import { TextInput } from "react-native-paper";

import { Input } from "./styles";

import Theme from "@/src/styles/theme";

interface CustomInputProps extends TextInputProps {
  label?: string;
  mode?: "outlined" | "flat";
  style?: TextStyle;
  disabled?: boolean;
  error?: boolean;
  autoCapitalize?: "none" | "sentences" | "words" | "characters";
  numberOfLines?: number;
  keyboardType?:
    | "default"
    | "number-pad"
    | "decimal-pad"
    | "numeric"
    | "email-address"
    | "phone-pad";
  type?: "text" | "password";
  onModal?: boolean;
}

const AdvancedInput = (props: CustomInputProps) => {
  const [hidePassword, setHidePassword] = useState(true);

  return (
    <Input
      {...(props as any)}
      numberOfLines={props.numberOfLines}
      disabled={props.disabled}
      label={props.label}
      mode={props.mode ?? "outlined"}
      style={{
        backgroundColor: props.disabled ? Theme.colors.grayLightest : "white",
        ...props.style,
      }}
      error={props.error}
      autoCapitalize={props.autoCapitalize ?? "none"}
      keyboardType={props.keyboardType ?? "default"}
      render={
        props.onModal
          ? (innerProps) => <BottomSheetTextInput {...(innerProps as any)} />
          : undefined
      }
      secureTextEntry={props.type === "password" && hidePassword}
      right={
        props.type === "password" ? (
          <TextInput.Icon
            icon={!hidePassword ? "eye-off" : "eye"}
            onPress={() => setHidePassword(!hidePassword)}
          />
        ) : undefined
      }
    />
  );
};

export default AdvancedInput;

from react-native-bottom-sheet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.