Skip to content

Commit

Permalink
refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
AMIRKHANEF committed Jun 25, 2024
1 parent 50988fc commit f50040f
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 18 deletions.
8 changes: 4 additions & 4 deletions packages/extension-polkagate/src/components/ProfileInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ interface Props {
export default function ProfileInput({ disabled = false, placeHolder = '', setProfileName, profileName, helperText = '', label, style }: Props): React.ReactElement<Props> {
const containerRef = useRef<HTMLDivElement>(null);

const profiles = useProfiles();
const { userDefinedProfiles } = useProfiles();

const [isPopperOpen, setTogglePopper] = useState<boolean>(false);
const [focus, setFocus] = useState<boolean>(false);
const [enteredProfile, setEnteredProfile] = useState<string | undefined>();
const [dropdownWidth, setDropdownWidth] = useState<string>('0');

const autocompleteOptions = useMemo(() => profiles?.userDefinedProfiles?.map((profile, index) => ({ index, profile })), [profiles?.userDefinedProfiles]);
const autocompleteOptions = useMemo(() => userDefinedProfiles.map((profile, index) => ({ index, profile })), [userDefinedProfiles, userDefinedProfiles.length]);

useEffect(() => {
profileName && setEnteredProfile(profileName);
Expand All @@ -54,8 +54,8 @@ export default function ProfileInput({ disabled = false, placeHolder = '', setPr
}, [setProfileName]);

const openPopper = useCallback(() =>
profiles?.userDefinedProfiles && profiles.userDefinedProfiles?.length > 0 && !enteredProfile && !isPopperOpen && setTogglePopper(true)
, [profiles?.userDefinedProfiles?.length, enteredProfile, isPopperOpen]);
userDefinedProfiles.length > 0 && !enteredProfile && !isPopperOpen && setTogglePopper(true)
, [userDefinedProfiles.length, enteredProfile, isPopperOpen]);

const closePopper = useCallback(() =>
setTogglePopper(false),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ function ProfileMenu({ address, setUpperAnchorEl }: Props): React.ReactElement<P

const onAction = useContext(ActionContext);
const { account, chain } = useInfo(address);
const profiles = useProfiles();
const { userDefinedProfiles } = useProfiles();

const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | HTMLDivElement | null>();
const [showName, setShowName] = useState<boolean>();
Expand Down Expand Up @@ -132,8 +132,8 @@ function ProfileMenu({ address, setUpperAnchorEl }: Props): React.ReactElement<P
/>
}
<Divider sx={{ bgcolor: 'secondary.light', height: '1px', my: '7px' }} />
{profiles?.userDefinedProfiles?.length
? profiles.userDefinedProfiles?.map((profile) => (
{userDefinedProfiles.length > 0
? userDefinedProfiles.map((profile) => (
<MenuItem
iconComponent={
<VaadinIcon icon='vaadin:folder-open-o' style={{ height: '20px', color: theme.palette.text.primary }} />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ interface Props {
export const HIDDEN_PERCENT = '50%';

export default function ProfileTabs({ orderedAccounts }: Props): React.ReactElement {
const profiles = useProfiles();
const { defaultProfiles, userDefinedProfiles } = useProfiles();

const [selectedProfile, setSelectedProfile] = useState<string>();
const [isHovered, setIsHovered] = useState<boolean>();
Expand All @@ -25,12 +25,12 @@ export default function ProfileTabs({ orderedAccounts }: Props): React.ReactElem
const scrollContainerRef = useRef<HTMLDivElement>(null);

const profilesToShow = useMemo(() => {
if (!profiles) {
return undefined;
if (defaultProfiles.length === 0 && userDefinedProfiles.length === 0) {
return [];
}

return profiles.defaultProfiles.concat(profiles.userDefinedProfiles);
}, [profiles, profiles?.defaultProfiles.length, profiles?.userDefinedProfiles.length]);
return defaultProfiles.concat(userDefinedProfiles);
}, [defaultProfiles.length, userDefinedProfiles.length]);

const onMouseEnter = useCallback(() => setIsHovered(true), []);
const onMouseLeave = useCallback(() => setIsHovered(false), []);
Expand All @@ -46,7 +46,7 @@ export default function ProfileTabs({ orderedAccounts }: Props): React.ReactElem
const handleWheel = (event: WheelEvent) => {
if (scrollContainerRef.current) {
event.preventDefault();
scrollContainerRef.current.scrollLeft += event.deltaY;
scrollContainerRef.current.scrollLeft += (event.deltaY || event.deltaX);
handleScroll();
}
};
Expand Down Expand Up @@ -80,11 +80,11 @@ export default function ProfileTabs({ orderedAccounts }: Props): React.ReactElem
overflowX: 'scroll',
whiteSpace: 'nowrap'
}}
ref={scrollContainerRef}
ref={scrollContainerRef}
xs
>
{
profilesToShow?.map((profile, index) => (
profilesToShow.map((profile, index) => (
<ProfileTab
selectedProfile={selectedProfile}
setSelectedProfile={setSelectedProfile}
Expand Down
12 changes: 9 additions & 3 deletions packages/extension-polkagate/src/hooks/useProfiles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,20 @@
import { useContext, useMemo } from 'react';
import { AccountContext } from '../components';

type Profiles = { userDefinedProfiles: string[]; defaultProfiles: string[]; } | undefined;
type Profiles = {
userDefinedProfiles: string[];
defaultProfiles: string[];
};

export default function useProfiles(): Profiles {
const { accounts } = useContext(AccountContext);

return useMemo(() => {
if(!accounts){
return;
if (!accounts) {
return {
userDefinedProfiles: [],
defaultProfiles: []
};
}

// default profiles
Expand Down

0 comments on commit f50040f

Please sign in to comment.