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

[GEN-1772]: fix "Transition" re-renders #1819

Merged
merged 183 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
c25c631
Merge pull request #1 from odigos-io/main
BenElferink Oct 20, 2024
12046ba
Refactor old ui to new product design (#1605)
alonkeyval Oct 21, 2024
6037f4c
Merge remote-tracking branch 'odigos/new-ui' into gen-1511-new-ui
BenElferink Oct 21, 2024
62934de
[GEN-1539] Refactor action api to gql (#1606)
alonkeyval Oct 22, 2024
d456363
[GEN-1540] Add update action mutation (#1607)
alonkeyval Oct 22, 2024
02682f9
Merge branch 'new-ui' of https://github.com/odigos-io/odigos into gen…
BenElferink Oct 22, 2024
522e782
feat(frontend): added actions form, and fixed bugs: empty inputs, sea…
BenElferink Oct 22, 2024
f435deb
[GEN-1541] Add delete action mutation (#1609)
alonkeyval Oct 22, 2024
9dbdc21
Lint rules (#1610)
alonkeyval Oct 22, 2024
a55f35b
fix: KeyValueInputsList would not always call onChange
BenElferink Oct 22, 2024
619bb6d
feat: custom fields with state management
BenElferink Oct 22, 2024
389fc46
fix: semicolon
BenElferink Oct 22, 2024
2487549
fix: docs link
BenElferink Oct 22, 2024
9e5224b
fix: frament & imports
BenElferink Oct 22, 2024
e4a8350
fix: MONITORING_OPTIONS from global consts
BenElferink Oct 22, 2024
a908130
fix: use const, not string
BenElferink Oct 22, 2024
38e862f
Merge pull request #2 from BenElferink/gen-1515-dynamic-action-form
BenElferink Oct 22, 2024
31f1db3
fix: dynamic signals for actions
BenElferink Oct 22, 2024
bc3bad3
fix: drawer & modal widths
BenElferink Oct 22, 2024
f1ac07b
[GEN-1546] Add delete attr new api (#1612)
alonkeyval Oct 22, 2024
254427a
[GEN-1546] Add pii masking new api (#1613)
alonkeyval Oct 22, 2024
c769731
[GEN-1513]: actions modal form (#1608)
BenElferink Oct 22, 2024
89a6594
fix: stringify for graphql
BenElferink Oct 22, 2024
9d260f4
Merge remote-tracking branch 'odigos/new-ui' into gen-1515-fix-string…
BenElferink Oct 22, 2024
19eb1fe
[GEN-1515]: fix stringify for graphql (#1615)
BenElferink Oct 27, 2024
446c37a
Merge branch 'main' into new-ui
BenElferink Oct 27, 2024
f97a5a1
Merge pull request #4 from odigos-io/new-ui
BenElferink Oct 27, 2024
944480f
[GEN-1547] Add error sampler api (#1629)
alonkeyval Oct 27, 2024
2637c1e
[GEN-1555] Add new latency sampler api (#1630)
alonkeyval Oct 27, 2024
4cedea9
[GEN-1557] Add prod sampler new api (#1631)
alonkeyval Oct 27, 2024
40f2215
[GEN-1559] Add new gql api for rename attr action (#1634)
alonkeyval Oct 27, 2024
2d4b1bb
[GEN-1517]: actions add via gql (#1635)
BenElferink Oct 27, 2024
afa1268
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 27, 2024
eff6d90
[GEN-1529]: latency sampler (#1644)
BenElferink Oct 28, 2024
536f32f
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 28, 2024
1ea39de
[GEN-1521]: update action - AddClusterInfo (#1646)
BenElferink Oct 28, 2024
fa352be
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 28, 2024
f3c1a26
[GEN-1579]: button outline (#1647)
BenElferink Oct 28, 2024
3bb2338
[GEN-1580]: useKeyDown hook fixed (#1648)
BenElferink Oct 28, 2024
a4f03d8
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 28, 2024
2a83b84
[GEN-1591]: make "add action" in overview functional (#1650)
BenElferink Oct 29, 2024
b3fa682
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 29, 2024
9ac0d13
[GEN-1583]: fix validations for "add actions" custom fields (#1651)
BenElferink Oct 29, 2024
f0a397f
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 29, 2024
33cb867
[GEN-1521]: update actions (#1652)
BenElferink Oct 29, 2024
2c13a75
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 29, 2024
d42c32b
[GEN-1593]: upgraded "status" component (#1655)
BenElferink Oct 29, 2024
3ab5c0c
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 29, 2024
c15a6ba
[GEN-1574]: delete actions (#1657)
BenElferink Oct 30, 2024
977c57b
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 30, 2024
fa609c3
[GEN-1592] Add instrumentation rules to gql (#1659)
alonkeyval Oct 30, 2024
78eda6e
[GEN-1582]: UI tweaks (#1658)
BenElferink Oct 30, 2024
6a91aba
[GEN-1603]: add rules column to overview (#1661)
BenElferink Oct 30, 2024
d95b6fe
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 30, 2024
fa5c457
fix: autocompleted notification type (#1664)
BenElferink Oct 31, 2024
cde9bdd
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 31, 2024
93bbe30
[GEN-1604]: create & get rules (#1665)
BenElferink Oct 31, 2024
7ca44f7
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Oct 31, 2024
c270e78
[GEN-1616] Add delete destination to gql (#1669)
alonkeyval Nov 3, 2024
9358337
[GEN-1601]: refetch after create/update destination (#1668)
BenElferink Nov 3, 2024
29d2e0d
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 3, 2024
08eacfe
[GEN-1581]: lists auto-focus & disable delete (#1670)
BenElferink Nov 3, 2024
240730f
[GEN-1613]: delete destination (#1672)
BenElferink Nov 3, 2024
5647431
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 3, 2024
9748362
[GEN-1620] Add metrics to gql (#1675)
alonkeyval Nov 3, 2024
8d22beb
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 3, 2024
a4a5d34
[GEN-1584]: fix close modal & animations (#1676)
BenElferink Nov 3, 2024
d933798
[GEN-1536]: scramble secret values (#1677)
BenElferink Nov 3, 2024
e53746d
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 3, 2024
2c9c79b
[GEN-1621]: add cancel modal & breakdown overview-drawer files (#1682)
BenElferink Nov 4, 2024
0dab5bd
[GEN-1626]: add mockup for overview filters (#1683)
BenElferink Nov 4, 2024
6fa1955
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 4, 2024
702e71a
[GEN-1641]: added UI for metrics (#1688)
BenElferink Nov 5, 2024
a6b6ec2
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 5, 2024
577ef58
[GEN-1646] Add destination condition and type (#1692)
alonkeyval Nov 5, 2024
746f560
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 5, 2024
0c39a29
[GEN-1642]: get metrics from API (with mockup for dev mode) (#1693)
BenElferink Nov 5, 2024
5c55719
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 5, 2024
a816fda
[GEN-1624]: refactor existing components in preparation for notificat…
BenElferink Nov 6, 2024
c790156
[GEN-1670]: kill redux, use new toasts (#1699)
BenElferink Nov 6, 2024
d9292ff
[GEN-1671]: toast animations + enriched messages (#1701)
BenElferink Nov 6, 2024
834e5ed
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 6, 2024
e15ea9a
[GEN-1672]: add logic for "go to details" button of toast notificatio…
BenElferink Nov 7, 2024
8f1cd3e
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 7, 2024
9f25eb4
[GEN-1668]: add handling for "dirty forms" (#1704)
BenElferink Nov 7, 2024
f4435c0
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 7, 2024
f596073
[GEN-1665]: formatting with prettier instead of eslint (#1705)
BenElferink Nov 10, 2024
b3b5007
[GEN-1629]: boolean store (isPolling) (#1706)
BenElferink Nov 10, 2024
1cd0a4b
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 10, 2024
0bbd34b
[GEN-1679]: added useSourceCRUD hook (#1720)
BenElferink Nov 10, 2024
eec5074
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 10, 2024
d9e8582
[GEN-1669] delete unused files (#1721)
alonkeyval Nov 10, 2024
c94d982
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 10, 2024
f32923b
[GEN-1680]: added new "toggle buttons" component (#1723)
BenElferink Nov 10, 2024
8771192
[GEN-1691] load styled on server (#1725)
alonkeyval Nov 10, 2024
5e3bb02
[GEN-1694]: search overview entities (#1731)
BenElferink Nov 11, 2024
fed3d84
Merge branch 'new-ui' of https://github.com/odigos-io/odigos
BenElferink Nov 11, 2024
b24e7c1
feat: UI tweaks in prep for overview filters
BenElferink Nov 11, 2024
5e078a4
feat: add filter action buttons
BenElferink Nov 11, 2024
5cf7fdd
feat: filter overview by namespace
BenElferink Nov 11, 2024
5cdb31e
feat: filter overview by "kind"
BenElferink Nov 11, 2024
3a371f7
feat: filter over by metrics
BenElferink Nov 11, 2024
d0748e9
feat: add logic for dropdown mutli-select
BenElferink Nov 11, 2024
d7ec9fb
fix: temporary labels for multi select
BenElferink Nov 11, 2024
b42215d
fix: dropdown smaller components
BenElferink Nov 11, 2024
80bb335
feat: multi-labels with remove buttons
BenElferink Nov 11, 2024
d10a8fd
fix: minor edits
BenElferink Nov 11, 2024
ad8323c
fix: filters is now a container
BenElferink Nov 11, 2024
29a9b27
perf: re-use styled components
BenElferink Nov 11, 2024
704e86d
fix: button alignment
BenElferink Nov 11, 2024
51bf1d3
fix: smaller components
BenElferink Nov 11, 2024
5130970
fix: continued cleanup
BenElferink Nov 11, 2024
9e3b772
feat: prepare component for error messages dropdown
BenElferink Nov 11, 2024
c868eab
feat: filter overview by error messages
BenElferink Nov 11, 2024
5f88f86
fix: toggle & dropdown
BenElferink Nov 12, 2024
52a7065
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos …
BenElferink Nov 12, 2024
b6f71fa
Odigos UI beta (#1739)
alonkeyval Nov 12, 2024
d1674a5
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos …
BenElferink Nov 12, 2024
2abe0e4
fix: duplicates
BenElferink Nov 12, 2024
4e19e69
fix: dropdown
BenElferink Nov 12, 2024
b553cda
[GEN-1695]: overview filtering (#1740)
BenElferink Nov 12, 2024
7a5d4b6
Fixed conf with filters (#1742)
alonkeyval Nov 12, 2024
6d2af50
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos …
BenElferink Nov 12, 2024
89ab764
Merge pull request #5 from BenElferink/gen-1695
BenElferink Nov 12, 2024
a109419
Fixed conf with filters (#1743)
alonkeyval Nov 12, 2024
4b9b73a
merge dev (#1745)
alonkeyval Nov 12, 2024
bebba92
Merge dev (#1746)
alonkeyval Nov 12, 2024
5959df5
merge dev (#1747)
alonkeyval Nov 13, 2024
80df692
[GEN-1705]: fast-select for sources (#1749)
BenElferink Nov 14, 2024
539888b
[GEN-1666]: multi-source control (delete many) (#1750)
BenElferink Nov 14, 2024
05f0b0d
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos
BenElferink Nov 14, 2024
735ff63
[GEN-1709]: added a notification manager (#1753)
BenElferink Nov 17, 2024
484280a
[GEN-1715]: cleared all errors from styled-components (#1763)
BenElferink Nov 17, 2024
e24f361
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos
BenElferink Nov 17, 2024
34c2c74
[GEN-1702] Add odigos UI beta flag (#1760)
alonkeyval Nov 17, 2024
ed0080c
[GEN-1717]: Action header-node border width (#1764)
BenElferink Nov 17, 2024
1bafe47
[GEN-1720]: Fixed modal layout (#1766)
BenElferink Nov 17, 2024
7098118
[GEN-1721]: Close search & filter on press ESCAPE (#1767)
BenElferink Nov 17, 2024
e9fa5d7
[GEN-1722]: Filter button weird focus-UI (#1768)
BenElferink Nov 17, 2024
a8f6655
[GEN-1718]: Notification icon BG (as per Figma) (#1765)
BenElferink Nov 17, 2024
9b886ba
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos
BenElferink Nov 17, 2024
293949a
[GEN-1716]: fixed ReactFlow "fit to view" (#1769)
BenElferink Nov 17, 2024
4b7fc72
Fixed ui broken (#1771)
alonkeyval Nov 17, 2024
7776a8f
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos
BenElferink Nov 17, 2024
82cec8e
[GEN-1726]: fix $props for Text component (#1772)
BenElferink Nov 17, 2024
b6be431
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos
BenElferink Nov 17, 2024
eb960d0
Odigos UI main merge (#1774)
alonkeyval Nov 18, 2024
1b029d6
[GEN-1683]: warning modal - warn again (#1773)
BenElferink Nov 18, 2024
410ab64
[GEN-1732] UI texts (#1777)
alonkeyval Nov 18, 2024
660c915
[GEN-1734]: remove previous notifications of deleted entity (#1775)
BenElferink Nov 18, 2024
a320b6f
[GEN-1699]: update dependencies (#1779)
BenElferink Nov 18, 2024
7eca746
[GEN-1735]: fix header buttons for destination modal (#1780)
BenElferink Nov 18, 2024
a96b706
[GEN-1719]: drawer titles & tooltips (#1781)
BenElferink Nov 18, 2024
887f4b4
Merge current main (#1783)
alonkeyval Nov 19, 2024
4a1b6e4
Merge branch 'main' into odigos-ui-beta
alonkeyval Nov 19, 2024
47da6bc
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos
BenElferink Nov 19, 2024
aa65e0b
Merge current main (#1784)
alonkeyval Nov 19, 2024
7ab5c25
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos
BenElferink Nov 19, 2024
95a3bb3
Merge current main (#1785)
alonkeyval Nov 19, 2024
0fc748b
Merge branch 'odigos-ui-beta' of https://github.com/odigos-io/odigos
BenElferink Nov 19, 2024
0a5b64d
fix: YAML parse error
BenElferink Nov 19, 2024
c666fab
e2e test fixes (#1787)
alonkeyval Nov 19, 2024
5250dbd
Merge current main (#1788)
alonkeyval Nov 19, 2024
68a0600
fix: YAML parse error (#1786)
BenElferink Nov 19, 2024
6fdba36
Fix tests timeouts (#1789)
BenElferink Nov 19, 2024
a8063a1
Merge branch 'main' into odigos-ui-beta
BenElferink Nov 19, 2024
86c1d84
Merge branch 'main' of https://github.com/odigos-io/odigos
BenElferink Nov 19, 2024
8a3dc3f
Merge branch 'odigos-ui-beta' into main
BenElferink Nov 19, 2024
8d97ab5
fix tests YAML syntax (#1790)
BenElferink Nov 19, 2024
c40fa7f
fix: remove non-existant files from tests
BenElferink Nov 19, 2024
cb4b96c
Merge branch 'odigos-ui-beta' into main
BenElferink Nov 19, 2024
e32f7d9
fix: remove again
BenElferink Nov 19, 2024
3fdab6c
Merge branch 'main' of https://github.com/odigos-io/odigos
BenElferink Nov 19, 2024
155a1a5
Merge branch 'main' of https://github.com/odigos-io/odigos
BenElferink Nov 20, 2024
dbd5690
Merge branch 'main' of https://github.com/odigos-io/odigos
BenElferink Nov 20, 2024
0c68c8c
Merge branch 'main' of https://github.com/odigos-io/odigos
BenElferink Nov 20, 2024
ed87a46
Merge branch 'main' of https://github.com/odigos-io/odigos
BenElferink Nov 20, 2024
a5de5e9
Merge branch 'main' of https://github.com/odigos-io/odigos
BenElferink Nov 20, 2024
def460c
Merge branch 'main' of https://github.com/odigos-io/odigos
BenElferink Nov 20, 2024
7a64bd9
fix: state of "recordedRows" in "monitors" checkbox list
BenElferink Nov 21, 2024
12584d9
Merge branch 'ui-bugs-party' of https://github.com/odigos-io/odigos
BenElferink Nov 21, 2024
188d683
fix: "Transition" re-renders
BenElferink Nov 21, 2024
e531b10
chore: make use of "useTransition" in drawer and modal
BenElferink Nov 21, 2024
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
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import { slide } from '@/styles';
import theme from '@/styles/theme';
import { useAppStore } from '@/store';
import styled from 'styled-components';
import { useSourceCRUD } from '@/hooks';
import { DeleteWarning } from '@/components';
import { Badge, Button, Divider, Text, Transition } from '@/reuseable-components';
import { useSourceCRUD, useTransition } from '@/hooks';
import { Badge, Button, Divider, Text } from '@/reuseable-components';

const Container = styled.div`
position: fixed;
Expand All @@ -24,6 +24,12 @@ const Container = styled.div`
`;

const MultiSourceControl = () => {
const Transition = useTransition({
container: Container,
animateIn: slide.in['center'],
animateOut: slide.out['center'],
});

const { sources, deleteSources } = useSourceCRUD();
const { configuredSources, setConfiguredSources } = useAppStore((state) => state);
const [isWarnModalOpen, setIsWarnModalOpen] = useState(false);
Expand All @@ -50,7 +56,7 @@ const MultiSourceControl = () => {

return (
<>
<Transition container={Container} enter={!!totalSelected} animateIn={slide.in['center']} animateOut={slide.out['center']}>
<Transition enter={!!totalSelected}>
<Text>Selected sources</Text>
<Badge label={totalSelected} filled />

Expand Down
1 change: 1 addition & 0 deletions frontend/webapp/hooks/common/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ export * from './useContainerSize';
export * from './useOnClickOutside';
export * from './useKeyDown';
export * from './useTimeAgo';
export * from './useTransition';
42 changes: 42 additions & 0 deletions frontend/webapp/hooks/common/useTransition.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import React, { PropsWithChildren, useCallback, useEffect, useState } from 'react';
import styled from 'styled-components';
import type { IStyledComponentBase, Keyframes, Substitute } from 'styled-components/dist/types';

interface HookProps {
container: IStyledComponentBase<'web', Substitute<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, {}>> & string;
animateIn: Keyframes;
animateOut?: Keyframes;
duration?: number; // in milliseconds
}

type TransitionProps = PropsWithChildren<{
enter: boolean;
[key: string]: any;
}>;

export const useTransition = ({ container, animateIn, animateOut, duration = 300 }: HookProps) => {
const Animated = styled(container)<{ $isEntering: boolean; $isLeaving: boolean }>`
animation-name: ${({ $isEntering, $isLeaving }) => ($isEntering ? animateIn : $isLeaving ? animateOut : 'none')};
animation-duration: ${duration}ms;
animation-fill-mode: forwards;
`;

const Transition = useCallback(({ children, enter, ...props }: TransitionProps) => {
const [mounted, setMounted] = useState(false);

useEffect(() => {
const t = setTimeout(() => setMounted(enter), duration + 50); // +50ms to ensure the animation is finished
return () => clearTimeout(t);
}, [enter, duration]);

return (
<Animated $isEntering={enter} $isLeaving={!enter && mounted} {...props}>
{children}
</Animated>
);

// do not add dependencies here, it will cause re-renders which we want to avoid
}, []);

return Transition;
};
34 changes: 16 additions & 18 deletions frontend/webapp/reuseable-components/drawer/index.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import React from 'react';
import ReactDOM from 'react-dom';
import { useKeyDown } from '@/hooks';
import styled from 'styled-components';
import { slide, Overlay } from '@/styles';
import { useKeyDown, useTransition } from '@/hooks';

interface DrawerProps {
interface Props {
isOpen: boolean;
onClose: () => void;
closeOnEscape?: boolean;
Expand All @@ -13,11 +13,9 @@ interface DrawerProps {
children: React.ReactNode;
}

// Styled-component for drawer container
const DrawerContainer = styled.div<{
$isOpen: DrawerProps['isOpen'];
$position: DrawerProps['position'];
$width: DrawerProps['width'];
const Container = styled.div<{
$position: Props['position'];
$width: Props['width'];
}>`
position: fixed;
top: 0;
Expand All @@ -28,26 +26,26 @@ const DrawerContainer = styled.div<{
background: ${({ theme }) => theme.colors.translucent_bg};
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
overflow-y: auto;
animation: ${({ $isOpen, $position = 'right' }) => ($isOpen ? slide.in[$position] : slide.out[$position])} 0.3s ease;
`;

export const Drawer: React.FC<DrawerProps> = ({ isOpen, onClose, position = 'right', width = '300px', children, closeOnEscape = true }) => {
useKeyDown(
{
key: 'Escape',
active: isOpen && closeOnEscape,
},
() => onClose(),
);
export const Drawer: React.FC<Props> = ({ isOpen, onClose, position = 'right', width = '300px', children, closeOnEscape = true }) => {
useKeyDown({ key: 'Escape', active: isOpen && closeOnEscape }, () => onClose());

const Transition = useTransition({
container: Container,
animateIn: slide.in[position],
animateOut: slide.out[position],
});

if (!isOpen) return null;

return ReactDOM.createPortal(
<>
<Overlay hidden={!isOpen} onClick={onClose} />
<DrawerContainer $isOpen={isOpen} $position={position} $width={width}>

<Transition enter={isOpen} $position={position} $width={width}>
{children}
</DrawerContainer>
</Transition>
</>,
document.body,
);
Expand Down
1 change: 0 additions & 1 deletion frontend/webapp/reuseable-components/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,3 @@ export * from './drawer';
export * from './input-table';
export * from './status';
export * from './field-label';
export * from './transition';
29 changes: 14 additions & 15 deletions frontend/webapp/reuseable-components/modal/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ import React from 'react';
import Image from 'next/image';
import { Text } from '../text';
import ReactDOM from 'react-dom';
import { useKeyDown } from '@/hooks';
import styled from 'styled-components';
import { useKeyDown, useTransition } from '@/hooks';
import { slide, Overlay, CenterThis } from '@/styles';

interface ModalProps {
interface Props {
isOpen: boolean;
noOverlay?: boolean;
header?: {
Expand All @@ -17,7 +17,7 @@ interface ModalProps {
children: React.ReactNode;
}

const ModalWrapper = styled.div<{ $isOpen: ModalProps['isOpen'] }>`
const Container = styled.div`
position: fixed;
top: 50%;
left: 50%;
Expand All @@ -30,7 +30,6 @@ const ModalWrapper = styled.div<{ $isOpen: ModalProps['isOpen'] }>`
border-radius: 40px;
box-shadow: 0px 1px 1px 0px rgba(17, 17, 17, 0.8), 0px 2px 2px 0px rgba(17, 17, 17, 0.8), 0px 5px 5px 0px rgba(17, 17, 17, 0.8), 0px 10px 10px 0px rgba(17, 17, 17, 0.8),
0px 0px 8px 0px rgba(17, 17, 17, 0.8);
animation: ${({ $isOpen }) => ($isOpen ? slide.in['center'] : slide.out['center'])} 0.3s ease;
`;

const ModalHeader = styled.div`
Expand Down Expand Up @@ -83,22 +82,22 @@ const CancelText = styled(Text)`
cursor: pointer;
`;

const Modal: React.FC<ModalProps> = ({ isOpen, noOverlay, header, actionComponent, onClose, children }) => {
useKeyDown(
{
key: 'Escape',
active: isOpen,
},
() => onClose(),
);
const Modal: React.FC<Props> = ({ isOpen, noOverlay, header, actionComponent, onClose, children }) => {
useKeyDown({ key: 'Escape', active: isOpen }, () => onClose());

const Transition = useTransition({
container: Container,
animateIn: slide.in['center'],
animateOut: slide.out['center'],
});

if (!isOpen) return null;

return ReactDOM.createPortal(
<>
<Overlay onClick={onClose} style={{ opacity: noOverlay ? 0 : 1 }} />
<Overlay hidden={!isOpen} onClick={onClose} style={{ opacity: noOverlay ? 0 : 1 }} />

<ModalWrapper $isOpen={isOpen}>
<Transition enter={isOpen}>
{header && (
<ModalHeader>
<ModalCloseButton onClick={onClose}>
Expand All @@ -113,7 +112,7 @@ const Modal: React.FC<ModalProps> = ({ isOpen, noOverlay, header, actionComponen
)}

<ModalContent>{children}</ModalContent>
</ModalWrapper>
</Transition>
</>,
document.body,
);
Expand Down
36 changes: 0 additions & 36 deletions frontend/webapp/reuseable-components/transition/index.tsx

This file was deleted.

Loading