|
@@ -13,7 +13,7 @@ import EyeIcon from "../icons/eye.svg";
|
|
|
import CopyIcon from "../icons/copy.svg";
|
|
import CopyIcon from "../icons/copy.svg";
|
|
|
import DragIcon from "../icons/drag.svg";
|
|
import DragIcon from "../icons/drag.svg";
|
|
|
|
|
|
|
|
-import { DEFAULT_MASK_AVATAR, Mask, useMaskStore } from "../store/mask";
|
|
|
|
|
|
|
+import { Mask, useMaskStore } from "../store/mask";
|
|
|
import {
|
|
import {
|
|
|
ChatMessage,
|
|
ChatMessage,
|
|
|
createMessage,
|
|
createMessage,
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
Select,
|
|
Select,
|
|
|
showConfirm,
|
|
showConfirm,
|
|
|
} from "./ui-lib";
|
|
} from "./ui-lib";
|
|
|
-import { Avatar, AvatarPicker } from "./emoji";
|
|
|
|
|
|
|
+import { Avatar } from "./avatar";
|
|
|
import Locale, { AllLangs, ALL_LANG_OPTIONS, Lang } from "../locales";
|
|
import Locale, { AllLangs, ALL_LANG_OPTIONS, Lang } from "../locales";
|
|
|
import { useNavigate } from "react-router-dom";
|
|
import { useNavigate } from "react-router-dom";
|
|
|
|
|
|
|
@@ -65,12 +65,8 @@ function reorder<T>(list: T[], startIndex: number, endIndex: number): T[] {
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export function MaskAvatar(props: { avatar: string; model?: ModelType }) {
|
|
|
|
|
- return props.avatar !== DEFAULT_MASK_AVATAR ? (
|
|
|
|
|
- <Avatar avatar={props.avatar} />
|
|
|
|
|
- ) : (
|
|
|
|
|
- <Avatar model={props.model} />
|
|
|
|
|
- );
|
|
|
|
|
|
|
+export function MaskAvatar(props: { avatar?: string; model?: ModelType }) {
|
|
|
|
|
+ return <Avatar model={props.model} />;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export function MaskConfig(props: {
|
|
export function MaskConfig(props: {
|
|
@@ -80,7 +76,7 @@ export function MaskConfig(props: {
|
|
|
readonly?: boolean;
|
|
readonly?: boolean;
|
|
|
shouldSyncFromGlobal?: boolean;
|
|
shouldSyncFromGlobal?: boolean;
|
|
|
}) {
|
|
}) {
|
|
|
- const [showPicker, setShowPicker] = useState(false);
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
const updateConfig = (updater: (config: ModelConfig) => void) => {
|
|
const updateConfig = (updater: (config: ModelConfig) => void) => {
|
|
|
if (props.readonly) return;
|
|
if (props.readonly) return;
|
|
@@ -113,32 +109,7 @@ export function MaskConfig(props: {
|
|
|
/>
|
|
/>
|
|
|
|
|
|
|
|
<List>
|
|
<List>
|
|
|
- <ListItem title={Locale.Mask.Config.Avatar}>
|
|
|
|
|
- <Popover
|
|
|
|
|
- content={
|
|
|
|
|
- <AvatarPicker
|
|
|
|
|
- onEmojiClick={(emoji) => {
|
|
|
|
|
- props.updateMask((mask) => (mask.avatar = emoji));
|
|
|
|
|
- setShowPicker(false);
|
|
|
|
|
- }}
|
|
|
|
|
- ></AvatarPicker>
|
|
|
|
|
- }
|
|
|
|
|
- open={showPicker}
|
|
|
|
|
- onClose={() => setShowPicker(false)}
|
|
|
|
|
- >
|
|
|
|
|
- <div
|
|
|
|
|
- tabIndex={0}
|
|
|
|
|
- aria-label={Locale.Mask.Config.Avatar}
|
|
|
|
|
- onClick={() => setShowPicker(true)}
|
|
|
|
|
- style={{ cursor: "pointer" }}
|
|
|
|
|
- >
|
|
|
|
|
- <MaskAvatar
|
|
|
|
|
- avatar={props.mask.avatar}
|
|
|
|
|
- model={props.mask.modelConfig.model}
|
|
|
|
|
- />
|
|
|
|
|
- </div>
|
|
|
|
|
- </Popover>
|
|
|
|
|
- </ListItem>
|
|
|
|
|
|
|
+
|
|
|
<ListItem title={Locale.Mask.Config.Name}>
|
|
<ListItem title={Locale.Mask.Config.Name}>
|
|
|
<input
|
|
<input
|
|
|
aria-label={Locale.Mask.Config.Name}
|
|
aria-label={Locale.Mask.Config.Name}
|