Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mui-phone-textfield

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mui-phone-textfield

A phone number input for Material-UI.

  • 5.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

npm npm build MIT license

mui-phone-textfield

A phone number input for Material-UI.

Installation

To install this package via npm:

npm i mui-phone-textfield

And its peer dependencies:

npm i react react-dom @mui/material @emotion/react @emotion/styled

Usage

The package exports mainly two components: PhoneTextField and CountrySelect

You can use the text input alone:

import { Box } from "@mui/material";
import PhoneTextField from "mui-phone-textfield";
import { useState } from "react";

function Example() {
  const [value, setValue] = useState("");
  const [country, setCountry] = useState("US");

  return (
    <Box sx={{ m: 2 }}>
      <PhoneTextField
        country={country}
        onCountryChange={setCountry}
        onPhoneNumber={setValue}
      />
      <Box sx={{ my: 1 }} />
      {value && <Box>This is a valid {country} phone number: {value}</Box>}
    </Box>
  );
}

compound

You can also separate the country menu and the text input:

import { Box } from "@mui/material";
import { CountrySelect, PhoneTextField } from "mui-phone-textfield";
import { useState } from "react";

function Example() {
  const [value, setValue] = useState("");
  const [country, setCountry] = useState("US");

  return (
    <Box sx={{ m: 2 }}>
      <CountrySelect value={country} onCountryChange={setCountry} />
      <Box sx={{ my: 1 }} />
      <PhoneTextField hideSelect country={country} onPhoneNumber={setValue} />
      <Box sx={{ my: 1 }} />
      {value && <Box>This is a valid {country} phone number: {value}</Box>}
    </Box>
  );
}

separate

Props

PhoneTextField

In addtion to TextField's props, The PhoneTextField component accepts the following:

proptypedescription
countrystringThe selected country. A two-letter ISO country code
hideSelectbooleanHides the internal select component. Useful when using CountrySelect alongside this component
disableFormattingbooleanDisables formatting the user's input
onCountryChangefunctionCallback fired when a user selects a country from the menu. It receives a country code
onPhoneNumberfunctionCallback fired when the input value changes. If the input is a valid phone number for the current country, it receives it in E.164 format, otherwise it receives an empty string

CountrySelect

In addtion to Select's props, The CountrySelect component accepts the following:

proptypedescription
hideCallingCodebooleanHides the calling code when rendering the selected value
hideCountryNamebooleanHides the country name when rendering the selected value
placeholderReactNodeRenders the provided placeholder node when displayEmpty is set
onCountryChangefunctionCallback fired when a user selects a country from the menu. It receives a country code

Contributing

Prerequisites

  • nodejs
  • npm

Getting Started

After cloning this repo, ensure dependencies are installed by running:

npm i

To build the final bundle:

npm run build

To rebuild on each change:

npm run dev

Commiting changes

Please follow the conventional commits specification, because semantic-release is used to automate the whole package release workflow including: determining the next version number, generating the release notes and publishing the package.

License

MIT

Keywords

FAQs

Package last updated on 06 Feb 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc