mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import React from 'react';
|
|
|
|
import config from 'configs/app';
|
|
import * as cookies from 'lib/cookies';
|
|
import { IDENTICONS } from 'lib/settings/identIcon';
|
|
|
|
import SettingsSample from './SettingsSample';
|
|
|
|
const SettingsIdentIcon = () => {
|
|
const [ activeId, setActiveId ] = React.useState<string>();
|
|
|
|
React.useEffect(() => {
|
|
const initialId = cookies.get(cookies.NAMES.ADDRESS_IDENTICON_TYPE) || config.UI.views.address.identiconType;
|
|
setActiveId(initialId);
|
|
}, []);
|
|
|
|
const handleSelect = React.useCallback((event: React.MouseEvent<HTMLDivElement>) => {
|
|
event.stopPropagation();
|
|
|
|
const id = event.currentTarget.getAttribute('data-value');
|
|
|
|
if (!id) {
|
|
return;
|
|
}
|
|
|
|
cookies.set(cookies.NAMES.ADDRESS_IDENTICON_TYPE, id);
|
|
window.location.reload();
|
|
}, []);
|
|
|
|
const activeIdenticon = IDENTICONS.find((identicon) => identicon.id === activeId);
|
|
|
|
return (
|
|
<div>
|
|
<div className="font-semibold">Address settings</div>
|
|
<div className="text-[var(--color-text-secondary)] mt-1 mb-2">{ activeIdenticon?.label }</div>
|
|
<div className="flex">
|
|
{ IDENTICONS.map((identicon) => (
|
|
<SettingsSample
|
|
key={ identicon.id }
|
|
label={ identicon.label }
|
|
value={ identicon.id }
|
|
bg={ identicon.sampleBg }
|
|
isActive={ identicon.id === activeId }
|
|
onClick={ handleSelect }
|
|
/>
|
|
)) }
|
|
</div>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default React.memo(SettingsIdentIcon);
|