Commit 89347915 authored by tom's avatar tom

move popover zIndex below modal zIndex

parent 53bbd3c3
...@@ -234,10 +234,11 @@ export interface SelectProps extends SelectRootProps { ...@@ -234,10 +234,11 @@ export interface SelectProps extends SelectRootProps {
portalled?: boolean; portalled?: boolean;
loading?: boolean; loading?: boolean;
errorText?: string; errorText?: string;
contentProps?: SelectContentProps;
} }
export const Select = React.forwardRef<HTMLDivElement, SelectProps>((props, ref) => { export const Select = React.forwardRef<HTMLDivElement, SelectProps>((props, ref) => {
const { collection, placeholder, portalled = true, loading, errorText, ...rest } = props; const { collection, placeholder, portalled = true, loading, errorText, contentProps, ...rest } = props;
return ( return (
<SelectRoot <SelectRoot
ref={ ref } ref={ ref }
...@@ -253,7 +254,7 @@ export const Select = React.forwardRef<HTMLDivElement, SelectProps>((props, ref) ...@@ -253,7 +254,7 @@ export const Select = React.forwardRef<HTMLDivElement, SelectProps>((props, ref)
errorText={ errorText } errorText={ errorText }
/> />
</SelectControl> </SelectControl>
<SelectContent portalled={ portalled }> <SelectContent portalled={ portalled } { ...contentProps }>
{ collection.items.map((item: SelectOption) => ( { collection.items.map((item: SelectOption) => (
<SelectItem item={ item } key={ item.value }> <SelectItem item={ item } key={ item.value }>
{ item.label } { item.label }
......
...@@ -3,14 +3,13 @@ export const zIndex = { ...@@ -3,14 +3,13 @@ export const zIndex = {
auto: { value: 'auto' }, auto: { value: 'auto' },
base: { value: 0 }, base: { value: 0 },
docked: { value: 10 }, docked: { value: 10 },
dropdown: { value: 1000 },
sticky: { value: 1100 }, sticky: { value: 1100 },
sticky1: { value: 1101 }, sticky1: { value: 1101 },
sticky2: { value: 1102 }, sticky2: { value: 1102 },
popover: { value: 1150 },
banner: { value: 1200 }, banner: { value: 1200 },
overlay: { value: 1300 }, overlay: { value: 1300 },
modal: { value: 1400 }, modal: { value: 1400 },
popover: { value: 1500 },
tooltip: { value: 1550 }, // otherwise tooltips will not be visible in modals tooltip: { value: 1550 }, // otherwise tooltips will not be visible in modals
tooltip2: { value: 1551 }, // for tooltips in tooltips tooltip2: { value: 1551 }, // for tooltips in tooltips
skipLink: { value: 1600 }, skipLink: { value: 1600 },
......
...@@ -9,7 +9,7 @@ export const recipe = defineSlotRecipe({ ...@@ -9,7 +9,7 @@ export const recipe = defineSlotRecipe({
boxShadow: 'popover', boxShadow: 'popover',
color: 'initial', color: 'initial',
maxHeight: 'var(--available-height)', maxHeight: 'var(--available-height)',
'--menu-z-index': 'zIndex.dropdown', '--menu-z-index': 'zIndex.popover',
zIndex: 'calc(var(--menu-z-index) + var(--layer-index, 0))', zIndex: 'calc(var(--menu-z-index) + var(--layer-index, 0))',
borderRadius: 'md', borderRadius: 'md',
overflow: 'hidden', overflow: 'hidden',
......
...@@ -12,6 +12,7 @@ import config from 'configs/app'; ...@@ -12,6 +12,7 @@ import config from 'configs/app';
import solidityScanIcon from 'icons/brands/solidity_scan.svg'; import solidityScanIcon from 'icons/brands/solidity_scan.svg';
import * as mixpanel from 'lib/mixpanel/index'; import * as mixpanel from 'lib/mixpanel/index';
import { Link } from 'toolkit/chakra/link'; import { Link } from 'toolkit/chakra/link';
import type { PopoverContentProps } from 'toolkit/chakra/popover';
import { PopoverBody, PopoverContent, PopoverRoot } from 'toolkit/chakra/popover'; import { PopoverBody, PopoverContent, PopoverRoot } from 'toolkit/chakra/popover';
import { useDisclosure } from 'toolkit/hooks/useDisclosure'; import { useDisclosure } from 'toolkit/hooks/useDisclosure';
import { apos } from 'toolkit/utils/htmlEntities'; import { apos } from 'toolkit/utils/htmlEntities';
...@@ -30,10 +31,20 @@ type Props = { ...@@ -30,10 +31,20 @@ type Props = {
popoverPlacement?: 'bottom-start' | 'bottom-end' | 'left'; popoverPlacement?: 'bottom-start' | 'bottom-end' | 'left';
buttonProps?: ButtonProps; buttonProps?: ButtonProps;
triggerWrapperProps?: BoxProps; triggerWrapperProps?: BoxProps;
popoverContentProps?: PopoverContentProps;
}; };
const AppSecurityReport = ({ const AppSecurityReport = ({
id, securityReport, showContractList, isLoading, onlyIcon, source, triggerWrapperProps, buttonProps, popoverPlacement = 'bottom-start', id,
securityReport,
showContractList,
isLoading,
onlyIcon,
source,
triggerWrapperProps,
buttonProps,
popoverPlacement = 'bottom-start',
popoverContentProps,
}: Props) => { }: Props) => {
const { open, onOpenChange } = useDisclosure(); const { open, onOpenChange } = useDisclosure();
...@@ -76,7 +87,7 @@ const AppSecurityReport = ({ ...@@ -76,7 +87,7 @@ const AppSecurityReport = ({
wrapperProps={ triggerWrapperProps } wrapperProps={ triggerWrapperProps }
{ ...buttonProps } { ...buttonProps }
/> />
<PopoverContent w={{ base: 'calc(100vw - 48px)', lg: '328px' }} mx={{ base: 3, lg: 0 }}> <PopoverContent w={{ base: 'calc(100vw - 48px)', lg: '328px' }} mx={{ base: 3, lg: 0 }} { ...popoverContentProps }>
<PopoverBody px="26px" py="20px" textStyle="sm"> <PopoverBody px="26px" py="20px" textStyle="sm">
<Text fontWeight="500" textStyle="xs" mb={ 2 } color="text.secondary">Smart contracts info</Text> <Text fontWeight="500" textStyle="xs" mb={ 2 } color="text.secondary">Smart contracts info</Text>
<Flex alignItems="center" justifyContent="space-between" py={ 1.5 }> <Flex alignItems="center" justifyContent="space-between" py={ 1.5 }>
......
...@@ -58,7 +58,6 @@ const ContractListModal = ({ onClose, onBack, type, contracts }: Props) => { ...@@ -58,7 +58,6 @@ const ContractListModal = ({ onClose, onBack, type, contracts }: Props) => {
open={ Boolean(type) } open={ Boolean(type) }
onOpenChange={ handleOpenChange } onOpenChange={ handleOpenChange }
size={{ lgDown: 'full', lg: 'md' }} size={{ lgDown: 'full', lg: 'md' }}
placement="center"
> >
<DialogContent> <DialogContent>
<DialogHeader display="flex" alignItems="center" mb={ 4 } onBackToClick={ onBack }> <DialogHeader display="flex" alignItems="center" mb={ 4 } onBackToClick={ onBack }>
......
...@@ -135,7 +135,6 @@ const MarketplaceAppModal = ({ ...@@ -135,7 +135,6 @@ const MarketplaceAppModal = ({
open={ Boolean(data.id) } open={ Boolean(data.id) }
onOpenChange={ handleOpenChange } onOpenChange={ handleOpenChange }
size={{ lgDown: 'full', lg: 'md' }} size={{ lgDown: 'full', lg: 'md' }}
placement="center"
> >
<DialogContent> <DialogContent>
<Box <Box
...@@ -197,6 +196,7 @@ const MarketplaceAppModal = ({ ...@@ -197,6 +196,7 @@ const MarketplaceAppModal = ({
fullView fullView
canRate={ canRate } canRate={ canRate }
source="App modal" source="App modal"
popoverContentProps={{ zIndex: 'modal' }}
/> />
</Box> </Box>
) } ) }
...@@ -265,6 +265,7 @@ const MarketplaceAppModal = ({ ...@@ -265,6 +265,7 @@ const MarketplaceAppModal = ({
showContractList={ showContractList } showContractList={ showContractList }
source="App modal" source="App modal"
popoverPlacement={ isMobile ? 'bottom-start' : 'left' } popoverPlacement={ isMobile ? 'bottom-start' : 'left' }
popoverContentProps={{ zIndex: 'modal' }}
/> />
</Flex> </Flex>
</Flex> </Flex>
......
...@@ -27,7 +27,6 @@ const MarketplaceDisclaimerModal = ({ isOpen, onClose, appId }: Props) => { ...@@ -27,7 +27,6 @@ const MarketplaceDisclaimerModal = ({ isOpen, onClose, appId }: Props) => {
open={ isOpen } open={ isOpen }
onOpenChange={ onClose } onOpenChange={ onClose }
size={ isMobile ? 'full' : 'md' } size={ isMobile ? 'full' : 'md' }
placement="center"
> >
<DialogContent> <DialogContent>
<DialogHeader> <DialogHeader>
......
...@@ -5,6 +5,7 @@ import type { AppRating } from 'types/client/marketplace'; ...@@ -5,6 +5,7 @@ import type { AppRating } from 'types/client/marketplace';
import config from 'configs/app'; import config from 'configs/app';
import type { EventTypes, EventPayload } from 'lib/mixpanel/index'; import type { EventTypes, EventPayload } from 'lib/mixpanel/index';
import type { PopoverContentProps } from 'toolkit/chakra/popover';
import { PopoverBody, PopoverContent, PopoverRoot } from 'toolkit/chakra/popover'; import { PopoverBody, PopoverContent, PopoverRoot } from 'toolkit/chakra/popover';
import { Rating } from 'toolkit/chakra/rating'; import { Rating } from 'toolkit/chakra/rating';
import { Skeleton } from 'toolkit/chakra/skeleton'; import { Skeleton } from 'toolkit/chakra/skeleton';
...@@ -26,11 +27,13 @@ type Props = { ...@@ -26,11 +27,13 @@ type Props = {
fullView?: boolean; fullView?: boolean;
canRate: boolean | undefined; canRate: boolean | undefined;
source: EventPayload<EventTypes.APP_FEEDBACK>['Source']; source: EventPayload<EventTypes.APP_FEEDBACK>['Source'];
popoverContentProps?: PopoverContentProps;
}; };
const MarketplaceRating = ({ const MarketplaceRating = ({
appId, rating, userRating, rate, appId, rating, userRating, rate,
isSending, isLoading, fullView, canRate, source, isSending, isLoading, fullView, canRate, source,
popoverContentProps,
}: Props) => { }: Props) => {
if (!isEnabled) { if (!isEnabled) {
...@@ -60,7 +63,7 @@ const MarketplaceRating = ({ ...@@ -60,7 +63,7 @@ const MarketplaceRating = ({
canRate={ canRate } canRate={ canRate }
/> />
{ canRate ? ( { canRate ? (
<PopoverContent w="250px"> <PopoverContent w="250px" { ...popoverContentProps }>
<PopoverBody> <PopoverBody>
<Content <Content
appId={ appId } appId={ appId }
......
...@@ -58,6 +58,7 @@ const NetworkMenuContentMobile = ({ items, tabs }: Props) => { ...@@ -58,6 +58,7 @@ const NetworkMenuContentMobile = ({ items, tabs }: Props) => {
collection={ selectCollection } collection={ selectCollection }
placeholder="Select network type" placeholder="Select network type"
mb={ 3 } mb={ 3 }
contentProps={{ zIndex: 'modal' }}
/> />
) } ) }
<VStack as="ul" gap={ 2 } alignItems="stretch"> <VStack as="ul" gap={ 2 } alignItems="stretch">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment