Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Profiles #1391

Merged
merged 1 commit into from
Jun 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading