mirror of
https://github.com/hexastack/hexabot
synced 2025-04-19 05:45:36 +00:00
fix: remove unnecessary state change
This commit is contained in:
parent
9c0a358977
commit
55ebe75861
@ -1,31 +1,25 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024 Hexastack. All rights reserved.
|
* Copyright © 2025 Hexastack. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
* Licensed under the GNU Affero General Public License v3.0 (AGPLv3) with the following additional terms:
|
||||||
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
* 1. The name "Hexabot" is a trademark of Hexastack. You may not use this name in derivative works without express written permission.
|
||||||
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
|
* 2. All derivative works must include clear attribution to the original creator and software, Hexastack and Hexabot, in a prominent location (e.g., in the software's "About" section, documentation, and README file).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
import VisibilityOffOutlinedIcon from "@mui/icons-material/VisibilityOffOutlined";
|
import VisibilityOffOutlinedIcon from "@mui/icons-material/VisibilityOffOutlined";
|
||||||
import VisibilityOutlinedIcon from "@mui/icons-material/VisibilityOutlined";
|
import VisibilityOutlinedIcon from "@mui/icons-material/VisibilityOutlined";
|
||||||
import { IconButton, InputAdornment, TextFieldProps } from "@mui/material";
|
import { IconButton, InputAdornment, TextFieldProps } from "@mui/material";
|
||||||
import React, { forwardRef, useState } from "react";
|
import { forwardRef, useState } from "react";
|
||||||
|
|
||||||
import { Input } from "./Input";
|
import { Input } from "./Input";
|
||||||
|
|
||||||
export const PasswordInput = forwardRef<any, TextFieldProps>(
|
export const PasswordInput = forwardRef<any, TextFieldProps>(
|
||||||
({ onChange, InputProps, value, ...rest }, ref) => {
|
({ onChange, InputProps, value, ...rest }, ref) => {
|
||||||
const [password, setPassword] = useState<string>(value as string);
|
|
||||||
const [showPassword, setShowPassword] = useState(false);
|
const [showPassword, setShowPassword] = useState(false);
|
||||||
const handleTogglePasswordVisibility = () => {
|
const handleTogglePasswordVisibility = () => {
|
||||||
setShowPassword(!showPassword);
|
setShowPassword(!showPassword);
|
||||||
};
|
};
|
||||||
const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
|
|
||||||
setPassword(event.target.value);
|
|
||||||
if (onChange) {
|
|
||||||
onChange(event);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Input
|
<Input
|
||||||
@ -33,10 +27,10 @@ export const PasswordInput = forwardRef<any, TextFieldProps>(
|
|||||||
type={showPassword ? "text" : "password"}
|
type={showPassword ? "text" : "password"}
|
||||||
{...rest}
|
{...rest}
|
||||||
defaultValue={value}
|
defaultValue={value}
|
||||||
onChange={handleChange}
|
onChange={onChange}
|
||||||
InputProps={{
|
InputProps={{
|
||||||
...InputProps,
|
...InputProps,
|
||||||
endAdornment: password && (
|
endAdornment: (
|
||||||
<InputAdornment position="end">
|
<InputAdornment position="end">
|
||||||
<IconButton onClick={handleTogglePasswordVisibility} edge="end">
|
<IconButton onClick={handleTogglePasswordVisibility} edge="end">
|
||||||
{showPassword ? (
|
{showPassword ? (
|
||||||
|
Loading…
Reference in New Issue
Block a user