UNPKG

@scrolia/vanilla

Version:

A headless scrollbar component

1 lines 1.54 kB
{"version":3,"file":"props.mjs","names":["name: GetComponentPropsName","elRef: Required<Atom.Ref<DOM.AtomicoThis>>","props: ComponentProps<\"div\">","newProps: ComponentProps<\"div\">"],"sources":["../../src/hooks/props.ts"],"sourcesContent":["import type * as DOM from \"atomico/types/dom\";\n\nimport type { ComponentProps } from \"#/@types/component\";\n\nimport * as Atom from \"atomico\";\n\nimport { useScrollCore } from \"#/contexts/scrollcore\";\nimport { getPropsFromAttributes } from \"#/functions/attribute\";\nimport {\n type GetComponentPropsName,\n getComponentProps,\n} from \"#/functions/props/get\";\nimport { setComponentProps } from \"#/functions/props/set\";\n\n/** Hook to set component props automatically. */\nconst useComponentPropsSetter = (name: GetComponentPropsName): void => {\n const elRef: Required<Atom.Ref<DOM.AtomicoThis>> = Atom.useHost();\n\n const {\n options: { plugins },\n } = useScrollCore();\n\n const props: ComponentProps<\"div\"> = getPropsFromAttributes(\n elRef.current.attributes,\n );\n\n const newProps: ComponentProps<\"div\"> = getComponentProps({\n name,\n props,\n plugins,\n });\n\n setComponentProps(elRef.current, newProps);\n};\n\nexport { useComponentPropsSetter };\n"],"mappings":";;;;;;;AAeA,MAAM,0BAA0B,CAACA,SAAsC;CACnE,MAAMC,QAA6C,KAAK,SAAS;CAEjE,MAAM,EACF,SAAS,EAAE,SAAS,EACvB,GAAG,eAAe;CAEnB,MAAMC,QAA+B,uBACjC,MAAM,QAAQ,WACjB;CAED,MAAMC,WAAkC,kBAAkB;EACtD;EACA;EACA;CACH,EAAC;AAEF,mBAAkB,MAAM,SAAS,SAAS;AAC7C"}