Various fixes charles 3 (#11573)
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
import { AppRouterProviders } from '@/app/components/AppRouterProviders';
|
import { AppRouterProviders } from '@/app/components/AppRouterProviders';
|
||||||
import { SettingsRoutes } from '@/app/components/SettingsRoutes';
|
import { SettingsRoutes } from '@/app/components/SettingsRoutes';
|
||||||
import { VerifyEffect } from '@/auth/components/Verify';
|
import { VerifyLoginTokenEffect } from '@/auth/components/VerifyLoginTokenEffect';
|
||||||
|
|
||||||
import { VerifyEmailEffect } from '@/auth/components/VerifyEmailEffect';
|
import { VerifyEmailEffect } from '@/auth/components/VerifyEmailEffect';
|
||||||
import indexAppPath from '@/navigation/utils/indexAppPath';
|
import indexAppPath from '@/navigation/utils/indexAppPath';
|
||||||
@ -39,7 +39,7 @@ export const useCreateAppRouter = (
|
|||||||
loader={async () => Promise.resolve(null)}
|
loader={async () => Promise.resolve(null)}
|
||||||
>
|
>
|
||||||
<Route element={<DefaultLayout />}>
|
<Route element={<DefaultLayout />}>
|
||||||
<Route path={AppPath.Verify} element={<VerifyEffect />} />
|
<Route path={AppPath.Verify} element={<VerifyLoginTokenEffect />} />
|
||||||
<Route path={AppPath.VerifyEmail} element={<VerifyEmailEffect />} />
|
<Route path={AppPath.VerifyEmail} element={<VerifyEmailEffect />} />
|
||||||
<Route path={AppPath.SignInUp} element={<SignInUp />} />
|
<Route path={AppPath.SignInUp} element={<SignInUp />} />
|
||||||
<Route path={AppPath.Invite} element={<SignInUp />} />
|
<Route path={AppPath.Invite} element={<SignInUp />} />
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import { useRecoilValue } from 'recoil';
|
|||||||
import { isDefined } from 'twenty-shared/utils';
|
import { isDefined } from 'twenty-shared/utils';
|
||||||
import { useNavigateApp } from '~/hooks/useNavigateApp';
|
import { useNavigateApp } from '~/hooks/useNavigateApp';
|
||||||
|
|
||||||
export const VerifyEffect = () => {
|
export const VerifyLoginTokenEffect = () => {
|
||||||
const [searchParams] = useSearchParams();
|
const [searchParams] = useSearchParams();
|
||||||
const loginToken = searchParams.get('loginToken');
|
const loginToken = searchParams.get('loginToken');
|
||||||
const errorMessage = searchParams.get('errorMessage');
|
const errorMessage = searchParams.get('errorMessage');
|
||||||
@ -4,7 +4,8 @@ import styled from '@emotion/styled';
|
|||||||
import { DropdownMenu } from '@/ui/layout/dropdown/components/DropdownMenu';
|
import { DropdownMenu } from '@/ui/layout/dropdown/components/DropdownMenu';
|
||||||
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
|
import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer';
|
||||||
import { OverlayContainer } from '@/ui/layout/overlay/components/OverlayContainer';
|
import { OverlayContainer } from '@/ui/layout/overlay/components/OverlayContainer';
|
||||||
import { useFloating } from '@floating-ui/react';
|
import { autoUpdate, useFloating } from '@floating-ui/react';
|
||||||
|
import { motion } from 'framer-motion';
|
||||||
import { createPortal } from 'react-dom';
|
import { createPortal } from 'react-dom';
|
||||||
import { IconComponent } from 'twenty-ui/display';
|
import { IconComponent } from 'twenty-ui/display';
|
||||||
import { MenuItemSuggestion } from 'twenty-ui/navigation';
|
import { MenuItemSuggestion } from 'twenty-ui/navigation';
|
||||||
@ -32,28 +33,35 @@ const StyledInnerContainer = styled.div`
|
|||||||
export const CustomSlashMenu = (props: CustomSlashMenuProps) => {
|
export const CustomSlashMenu = (props: CustomSlashMenuProps) => {
|
||||||
const { refs, floatingStyles } = useFloating({
|
const { refs, floatingStyles } = useFloating({
|
||||||
placement: 'bottom-start',
|
placement: 'bottom-start',
|
||||||
|
whileElementsMounted: autoUpdate,
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StyledContainer ref={refs.setReference}>
|
<StyledContainer ref={refs.setReference}>
|
||||||
{createPortal(
|
{createPortal(
|
||||||
<OverlayContainer ref={refs.setFloating} style={floatingStyles}>
|
<motion.div
|
||||||
<StyledInnerContainer>
|
initial={{ opacity: 0 }}
|
||||||
<DropdownMenu style={{ zIndex: 2001 }}>
|
animate={{ opacity: 1 }}
|
||||||
<DropdownMenuItemsContainer>
|
transition={{ duration: 0.1 }}
|
||||||
{props.items.map((item, index) => (
|
>
|
||||||
<MenuItemSuggestion
|
<OverlayContainer ref={refs.setFloating} style={floatingStyles}>
|
||||||
key={item.title}
|
<StyledInnerContainer>
|
||||||
onClick={() => item.onItemClick()}
|
<DropdownMenu style={{ zIndex: 2001 }}>
|
||||||
text={item.title}
|
<DropdownMenuItemsContainer>
|
||||||
LeftIcon={item.Icon}
|
{props.items.map((item, index) => (
|
||||||
selected={props.selectedIndex === index}
|
<MenuItemSuggestion
|
||||||
/>
|
key={item.title}
|
||||||
))}
|
onClick={() => item.onItemClick()}
|
||||||
</DropdownMenuItemsContainer>
|
text={item.title}
|
||||||
</DropdownMenu>
|
LeftIcon={item.Icon}
|
||||||
</StyledInnerContainer>
|
selected={props.selectedIndex === index}
|
||||||
</OverlayContainer>,
|
/>
|
||||||
|
))}
|
||||||
|
</DropdownMenuItemsContainer>
|
||||||
|
</DropdownMenu>
|
||||||
|
</StyledInnerContainer>
|
||||||
|
</OverlayContainer>
|
||||||
|
</motion.div>,
|
||||||
document.body,
|
document.body,
|
||||||
)}
|
)}
|
||||||
</StyledContainer>
|
</StyledContainer>
|
||||||
|
|||||||
Reference in New Issue
Block a user