Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
mui-phone-textfield
Advanced tools
A phone number input for Material-UI.
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
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>
);
}
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>
);
}
In addtion to TextField's props, The PhoneTextField
component accepts the following:
prop | type | description |
---|---|---|
country | string | The selected country. A two-letter ISO country code |
hideSelect | boolean | Hides the internal select component. Useful when using CountrySelect alongside this component |
disableFormatting | boolean | Disables formatting the user's input |
onCountryChange | function | Callback fired when a user selects a country from the menu. It receives a country code |
onPhoneNumber | function | Callback 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 |
In addtion to Select's props, The CountrySelect
component accepts the following:
prop | type | description |
---|---|---|
hideCallingCode | boolean | Hides the calling code when rendering the selected value |
hideCountryName | boolean | Hides the country name when rendering the selected value |
placeholder | ReactNode | Renders the provided placeholder node when displayEmpty is set |
onCountryChange | function | Callback fired when a user selects a country from the menu. It receives a country code |
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
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.
FAQs
A phone number input for Material-UI.
We found that mui-phone-textfield demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.