From beea61c2ebc60b4e13fad38c7109915a2e5e6d24 Mon Sep 17 00:00:00 2001 From: Davide Carpini Date: Tue, 21 Nov 2023 10:44:42 +0100 Subject: [PATCH 1/3] fix: add animation to modal --- .../components/base/vwk-base-modal/index.ts | 50 +++++++++++++++++-- .../src/components/vwk-connect-modal/index.ts | 3 +- 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/packages/dapp-kit-ui/src/components/base/vwk-base-modal/index.ts b/packages/dapp-kit-ui/src/components/base/vwk-base-modal/index.ts index 5ba42946..8eca69c8 100644 --- a/packages/dapp-kit-ui/src/components/base/vwk-base-modal/index.ts +++ b/packages/dapp-kit-ui/src/components/base/vwk-base-modal/index.ts @@ -1,6 +1,6 @@ import type { TemplateResult } from 'lit'; -import { LitElement, css, html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { css, html, LitElement } from 'lit'; +import { customElement, property, query } from 'lit/decorators.js'; import { Breakpoint, Colors } from '../../../constants'; import type { Theme, ThemeMode } from '../../../constants/theme'; @@ -18,10 +18,19 @@ export class Modal extends LitElement { height: 100%; background-color: rgba(0, 0, 0, 0.5); } + .modal-container.hidden { + display: none; + } .modal { position: absolute; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2); + transition: height 0.2s, opacity 1s; + overflow: hidden; + opacity: 1; + } + .modal-container.hidden .modal { + opacity: 0; } .modal.LIGHT { @@ -55,6 +64,30 @@ export class Modal extends LitElement { } } `; + + changeHeightOnResize = (): void => { + if (!this.modalSubContainer) { + return; + } + this.modalHeight = this.modalSubContainer.clientHeight; + new ResizeObserver(() => { + this.modalHeight = this.modalSubContainer?.clientHeight ?? 0; + }).observe(this.modalSubContainer); + }; + + override connectedCallback(): void { + super.connectedCallback(); + addEventListener('load', this.changeHeightOnResize); + } + override disconnectedCallback(): void { + super.disconnectedCallback(); + window.removeEventListener('load', this.changeHeightOnResize); + } + + @query('.modal-sub-container') + modalSubContainer?: Element; + @property() + modalHeight?: number; @property({ type: Boolean }) open = false; @property() @@ -70,14 +103,21 @@ export class Modal extends LitElement { }; override render(): TemplateResult { - if (!this.open) return html``; return html` - @@ -105,6 +151,10 @@ export class WalletConnectQrCode extends LitElement { private onCopy = async (): Promise => { await navigator.clipboard.writeText(this.walletConnectQRcode || ''); + this.showCopiedIcon = true; + setTimeout(() => { + this.showCopiedIcon = false; + }, 3000); }; private svgWCQrCode(uri: string): TemplateResult { From d470537d4406790f44db7c5e7832d557b919912b Mon Sep 17 00:00:00 2001 From: Davide Carpini Date: Tue, 21 Nov 2023 15:12:25 +0100 Subject: [PATCH 3/3] test: add vi tests --- packages/dapp-kit-ui/test/listeners.test.ts | 24 +++++++++++++++++++++ packages/dapp-kit-ui/tsconfig.json | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 packages/dapp-kit-ui/test/listeners.test.ts diff --git a/packages/dapp-kit-ui/test/listeners.test.ts b/packages/dapp-kit-ui/test/listeners.test.ts new file mode 100644 index 00000000..e0d55d37 --- /dev/null +++ b/packages/dapp-kit-ui/test/listeners.test.ts @@ -0,0 +1,24 @@ +import { vi } from 'vitest'; +import { addResizeListeners } from '../src/utils/listeners'; // Replace 'yourModule' with the actual module path + +describe('addResizeListeners', () => { + it('should call the callback when the window loads', () => { + const callback = vi.fn(); + addResizeListeners(callback); + + // Simulate a 'load' event on the window + window.dispatchEvent(new Event('load')); + + expect(callback).toHaveBeenCalled(); + }); + + it('should call the callback when the window resizes', () => { + const callback = vi.fn(); + addResizeListeners(callback); + + // Simulate a 'resize' event on the window + window.dispatchEvent(new Event('resize')); + + expect(callback).toHaveBeenCalled(); + }); +}); diff --git a/packages/dapp-kit-ui/tsconfig.json b/packages/dapp-kit-ui/tsconfig.json index 49edcff3..17cd689c 100644 --- a/packages/dapp-kit-ui/tsconfig.json +++ b/packages/dapp-kit-ui/tsconfig.json @@ -4,6 +4,6 @@ "target": "es2021", "experimentalDecorators": true }, - "include": ["src/**/*.ts"], + "include": ["src/**/*.ts", "test/listeners.test.ts"], "exclude": [] }