From 745edc833c8edcfdab6f9c4f3c09069851c06771 Mon Sep 17 00:00:00 2001 From: bhenique Date: Sun, 26 May 2024 16:09:29 +0200 Subject: [PATCH 1/2] feat(draft): add Dropdown component --- README.md | 2 + src/components/Dropdown/Dropdown.tsx | 252 +++++++++++++++++++++++++++ src/components/Modal/Modal.tsx | 4 +- src/composables/use-outer-click.ts | 45 +++-- src/index.ts | 2 +- src/routes/dropdown/index.tsx | 172 ++++++++++++++++++ src/routes/select/index.tsx | 172 ++++++++++++++++++ 7 files changed, 633 insertions(+), 16 deletions(-) create mode 100644 src/components/Dropdown/Dropdown.tsx create mode 100644 src/routes/dropdown/index.tsx create mode 100644 src/routes/select/index.tsx diff --git a/README.md b/README.md index 88039d706..448d2a4b7 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,8 @@ module.exports = { - Badges - Breadcrumbs - Buttons +- CodeBlock +- Dropdown - Inputs - Modal - Ratings diff --git a/src/components/Dropdown/Dropdown.tsx b/src/components/Dropdown/Dropdown.tsx new file mode 100644 index 000000000..ab599a5b0 --- /dev/null +++ b/src/components/Dropdown/Dropdown.tsx @@ -0,0 +1,252 @@ +import { $, component$, FunctionComponent, JSXChildren, JSXOutput, PropsOf, Slot, useSignal, useStore } from '@builder.io/qwik' +import { getChild } from '~/utils/getChild' +import { Button } from '~/components/Button/Button' +import { useDocumentOuterClick } from '~/composables/use-outer-click' +import { ButtonSize } from '~/components/Button/button-types' + +interface ComponentType { + id: number + value?: string + header: boolean + divider: boolean + icon?: JSXOutput + content: JSXChildren +} + +export type DropdownSize = 's' | 'm' | 'l' + +type DropdownProps = PropsOf<'div'> & { + 'bind:selected': { v: string } + whenSelect$: (value: string) => void + label: string + closeWhenSelect?: boolean + inline?: boolean + size?: DropdownSize + iconRotate?: string | number +} +export const Dropdown: FunctionComponent = ({ + children, + label, + closeWhenSelect = true, + whenSelect$, + inline = false, + size = 'm', + iconRotate, + ...props +}) => { + const childrenToProcess = Array.isArray(children) ? [...children] : [children] + + const components: ComponentType[] = [] + + getChild(childrenToProcess, [ + { + component: DropdownItem, + foundComponentCallback: (child, index) => { + components.push({ + id: index, + value: child.props.value as string | undefined, + header: Boolean(child.props.header), + divider: Boolean(child.props.divider), + icon: child.props.icon as JSXOutput | undefined, + content: child.children, + }) + }, + }, + ]) + + return ( +
+ +
+ ) +} + +type DropdownItemProps = { + value?: string + header?: boolean + divider?: boolean + icon?: JSXOutput +} +export const DropdownItem = component$(() => { + return +}) + +/** + * Implementation + */ + +type InnerDropdownProps = { + 'bind:selected': { v: string } + whenSelect$: (value: string) => void + label: string + closeWhenSelect: boolean + components: ComponentType[] + inline: boolean + size: DropdownSize + iconRotate?: string | number +} + +const InnerDropdown = component$(({ label, closeWhenSelect, components, whenSelect$, inline, size, iconRotate, ...props }) => { + const visible = useSignal(false) + const dropdownRef = useSignal() + const componentsAsSignals = useStore(() => components, { deep: true }) + + const toggleVisible = $(() => { + visible.value = !visible.value + }) + const TriggerButton = inline ? InnerTriggerInline : InnerTriggerButton + + useDocumentOuterClick([dropdownRef], toggleVisible, visible) // FIXME first double-click + + return ( +
+
+ + {visible.value && ( + + )} +
+
+ ) +}) + +const InnerDropdownHeader = component$(() => { + return ( + <> +
+ +
+
+ + ) +}) + +const InnerDropdownDivider = component$(() => { + return
+}) + +type InnerDropdownItemProps = PropsOf<'button'> & { + icon?: JSXOutput + handleWhenSelect?: () => void +} +const InnerDropdownItem = component$(({ icon, handleWhenSelect, ...props }) => { + return ( + + ) +}) + +type InnerTriggerIconProps = PropsOf<'svg'> & { + rotate?: string | number +} +const InnerTriggerIcon = component$(({ rotate }) => { + return ( + + ) +}) + +type InnerTriggerInlineProps = { + label: string + onClick$: () => void + size: DropdownSize + iconRotate?: string | number +} +const InnerTriggerInline = component$(({ label, size, iconRotate, onClick$ }) => { + const buttonSizeClasses: Record = { + s: 'text-sm px-3 py-1.5', + m: 'text-sm px-4 py-2', + l: 'text-base px-5 py-2.5', + } + + return ( + + ) +}) + +type InnerTriggerButtonProps = { + label: string + onClick$: () => void + size: DropdownSize + iconRotate?: string | number +} +const InnerTriggerButton = component$(({ label, size, iconRotate, onClick$ }) => { + const buttonSize: Record = { + s: 'sm', + m: 'md', + l: 'lg', + } + + return ( + + ) +}) diff --git a/src/components/Modal/Modal.tsx b/src/components/Modal/Modal.tsx index 3f9ea81d2..bcba0cc1d 100644 --- a/src/components/Modal/Modal.tsx +++ b/src/components/Modal/Modal.tsx @@ -1,6 +1,6 @@ import { $, component$, JSXOutput, PropsOf, Signal, Slot, useComputed$, useSignal, useTask$ } from '@builder.io/qwik' import { ModalSize } from '~/components/Modal/modal-types' -import { useOuterClick } from '~/composables/use-outer-click' +import { useComponentOuterClick } from '~/composables/use-outer-click' import { isServer } from '@builder.io/qwik/build' import { useModalClasses } from '~/components/Modal/composables/use-modal-classes' @@ -44,7 +44,7 @@ export const Modal = component$( } }) - useOuterClick( + useComponentOuterClick( [modalRef], $(() => { if (!persistent) { diff --git a/src/composables/use-outer-click.ts b/src/composables/use-outer-click.ts index a9c6de085..68f278d10 100644 --- a/src/composables/use-outer-click.ts +++ b/src/composables/use-outer-click.ts @@ -1,21 +1,40 @@ -import { QRL, Signal, useOn } from '@builder.io/qwik' +import { QRL, Signal, useOn, useOnDocument } from '@builder.io/qwik' import { isSignal } from '@builder.io/qwik' import { $ } from '@builder.io/qwik' -export function useOuterClick(targets: Array | string>, handler$: QRL<() => void>, validCondition: Signal) { - useOn( - 'click', - $(async (event: Event) => { - if (!validCondition.value) return +const action = $( + async (event: Event, targets: Array | string>, handler$: QRL<() => void>, validCondition: Signal) => { + if (!validCondition.value) return + + const targetElements = targets.flatMap((selector) => { + const element = isSignal(selector) ? selector.value : document.querySelector(selector) + return element ? [element] : [] + }) - const targetElements = targets.flatMap((selector) => { - const element = isSignal(selector) ? selector.value : document.querySelector(selector) - return element ? [element] : [] - }) + if (targetElements.some((element) => element === event.target || element.contains(event.target as HTMLElement))) return - if (targetElements.some((element) => element === event.target || element.contains(event.target as HTMLElement))) return + await handler$() + }, +) - await handler$() - }), +export function useComponentOuterClick( + targets: Array | string>, + handler$: QRL<() => void>, + validCondition: Signal, +) { + useOn( + 'click', + $((event: Event) => action(event, targets, handler$, validCondition)), + ) +} + +export function useDocumentOuterClick( + targets: Array | string>, + handler$: QRL<() => void>, + validCondition: Signal, +) { + useOnDocument( + 'click', + $((event: Event) => action(event, targets, handler$, validCondition)), ) } diff --git a/src/index.ts b/src/index.ts index 8bb23c9d4..9caf8753b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -21,4 +21,4 @@ export * from './components/Icon' export { useToast } from './components/ToastList/composables/use-toast' export { useDark } from './composables/use-dark' export { useMediaQuery } from './composables/use-media-query' -export { useOuterClick } from './composables/use-outer-click' +export { useComponentOuterClick, useDocumentOuterClick } from './composables/use-outer-click' diff --git a/src/routes/dropdown/index.tsx b/src/routes/dropdown/index.tsx new file mode 100644 index 000000000..48a96a5b5 --- /dev/null +++ b/src/routes/dropdown/index.tsx @@ -0,0 +1,172 @@ +import { component$, useStore } from '@builder.io/qwik' +import { Dropdown, DropdownItem, DropdownSize } from '~/components/Dropdown/Dropdown' + +export default component$(() => { + const selectedStore = useStore({ value: '' }) + + return ( + + ) +}) diff --git a/src/routes/select/index.tsx b/src/routes/select/index.tsx new file mode 100644 index 000000000..48a96a5b5 --- /dev/null +++ b/src/routes/select/index.tsx @@ -0,0 +1,172 @@ +import { component$, useStore } from '@builder.io/qwik' +import { Dropdown, DropdownItem, DropdownSize } from '~/components/Dropdown/Dropdown' + +export default component$(() => { + const selectedStore = useStore({ value: '' }) + + return ( + + ) +}) From c9196d6252d136a97c78d00252d110563077b10e Mon Sep 17 00:00:00 2001 From: bhenique Date: Tue, 28 May 2024 00:24:46 +0200 Subject: [PATCH 2/2] feat: refacto --- README.md | 1 + package.json | 2 +- public/profile-picture.jpg | Bin 0 -> 62602 bytes src/components/Drawer/Drawer.tsx | 2 +- src/components/Dropdown/Dropdown.tsx | 192 ++++++----- .../composables/use-dropdown-classes.ts | 43 +++ src/components/Dropdown/dropdown-types.ts | 1 + src/routes/dropdown/index.tsx | 325 +++++++++++------- src/routes/select/index.tsx | 172 --------- 9 files changed, 368 insertions(+), 370 deletions(-) create mode 100644 public/profile-picture.jpg create mode 100644 src/components/Dropdown/composables/use-dropdown-classes.ts create mode 100644 src/components/Dropdown/dropdown-types.ts delete mode 100644 src/routes/select/index.tsx diff --git a/README.md b/README.md index 448d2a4b7..f22e4d721 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ module.exports = { - Breadcrumbs - Buttons - CodeBlock +- Drawer - Dropdown - Inputs - Modal diff --git a/package.json b/package.json index 0927c70fd..05a557178 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flowbite-qwik", - "version": "0.11.0", + "version": "0.12.0", "description": "Official Qwik components built for Flowbite and Tailwind CSS", "keywords": [ "design-system", diff --git a/public/profile-picture.jpg b/public/profile-picture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5a667c97f50a4edee11b71cb3925f739e820d27c GIT binary patch literal 62602 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 content: JSXChildren + onClick$?: () => void } -export type DropdownSize = 's' | 'm' | 'l' - type DropdownProps = PropsOf<'div'> & { - 'bind:selected': { v: string } - whenSelect$: (value: string) => void label: string + as?: JSXOutput closeWhenSelect?: boolean inline?: boolean size?: DropdownSize @@ -27,12 +42,12 @@ type DropdownProps = PropsOf<'div'> & { export const Dropdown: FunctionComponent = ({ children, label, + as, closeWhenSelect = true, - whenSelect$, inline = false, size = 'm', iconRotate, - ...props + ...attrs }) => { const childrenToProcess = Array.isArray(children) ? [...children] : [children] @@ -47,8 +62,9 @@ export const Dropdown: FunctionComponent = ({ value: child.props.value as string | undefined, header: Boolean(child.props.header), divider: Boolean(child.props.divider), - icon: child.props.icon as JSXOutput | undefined, + icon: child.props.icon as Component | undefined, content: child.children, + onClick$: child.props.onClick$ as () => void | undefined, }) }, }, @@ -59,12 +75,12 @@ export const Dropdown: FunctionComponent = ({
) @@ -74,28 +90,31 @@ type DropdownItemProps = { value?: string header?: boolean divider?: boolean - icon?: JSXOutput + icon?: Component + onClick$?: () => void } export const DropdownItem = component$(() => { return }) /** - * Implementation + * InnerDropdown */ type InnerDropdownProps = { - 'bind:selected': { v: string } - whenSelect$: (value: string) => void label: string + as?: JSXOutput closeWhenSelect: boolean components: ComponentType[] inline: boolean size: DropdownSize iconRotate?: string | number + class?: ClassList } -const InnerDropdown = component$(({ label, closeWhenSelect, components, whenSelect$, inline, size, iconRotate, ...props }) => { +const InnerDropdown = component$(({ label, as, closeWhenSelect, components, inline, size, iconRotate, class: classNames }) => { + const { dropdownModalClasses } = useDropdownClasses(useComputed$(() => size)) + const visible = useSignal(false) const dropdownRef = useSignal() const componentsAsSignals = useStore(() => components, { deep: true }) @@ -104,32 +123,34 @@ const InnerDropdown = component$(({ label, closeWhenSelect, visible.value = !visible.value }) const TriggerButton = inline ? InnerTriggerInline : InnerTriggerButton + const TriggerButtonAs = as ? InnerTriggerAs : undefined useDocumentOuterClick([dropdownRef], toggleVisible, visible) // FIXME first double-click return ( -
+
- + {TriggerButtonAs ? ( + + ) : ( + + )} + {visible.value && ( -