UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

1 lines 2.13 kB
{"version":3,"file":"ScrollAreaCorner.cjs","names":["useScrollAreaContext"],"sources":["../../../../src/components/ScrollArea/ScrollAreaCorner/ScrollAreaCorner.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useScrollAreaContext } from '../ScrollArea.context';\nimport { useResizeObserver } from '../use-resize-observer';\n\ninterface ScrollAreaCornerProps extends React.ComponentProps<'div'> {}\n\nexport function Corner(props: ScrollAreaCornerProps) {\n const { style, ...others } = props;\n const ctx = useScrollAreaContext();\n const [width, setWidth] = useState(0);\n const [height, setHeight] = useState(0);\n const hasSize = Boolean(width && height);\n\n useResizeObserver(ctx.scrollbarX, () => {\n const h = ctx.scrollbarX?.offsetHeight || 0;\n ctx.onCornerHeightChange(h);\n setHeight(h);\n });\n\n useResizeObserver(ctx.scrollbarY, () => {\n const w = ctx.scrollbarY?.offsetWidth || 0;\n ctx.onCornerWidthChange(w);\n setWidth(w);\n });\n\n return hasSize ? <div {...others} style={{ ...style, width, height }} /> : null;\n}\n\nexport function ScrollAreaCorner(props: ScrollAreaCornerProps) {\n const ctx = useScrollAreaContext();\n const hasBothScrollbarsVisible = Boolean(ctx.scrollbarX && ctx.scrollbarY);\n const hasCorner = ctx.type !== 'scroll' && hasBothScrollbarsVisible;\n return hasCorner ? <Corner {...props} /> : null;\n}\n"],"mappings":";;;;;;;AAMA,SAAgB,OAAO,OAA8B;CACnD,MAAM,EAAE,OAAO,GAAG,WAAW;CAC7B,MAAM,MAAMA,2BAAAA,sBAAsB;CAClC,MAAM,CAAC,OAAO,aAAA,GAAA,MAAA,UAAqB,EAAE;CACrC,MAAM,CAAC,QAAQ,cAAA,GAAA,MAAA,UAAsB,EAAE;CACvC,MAAM,UAAU,QAAQ,SAAS,OAAO;AAExC,6BAAA,kBAAkB,IAAI,kBAAkB;EACtC,MAAM,IAAI,IAAI,YAAY,gBAAgB;AAC1C,MAAI,qBAAqB,EAAE;AAC3B,YAAU,EAAE;GACZ;AAEF,6BAAA,kBAAkB,IAAI,kBAAkB;EACtC,MAAM,IAAI,IAAI,YAAY,eAAe;AACzC,MAAI,oBAAoB,EAAE;AAC1B,WAAS,EAAE;GACX;AAEF,QAAO,UAAU,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,GAAI;EAAQ,OAAO;GAAE,GAAG;GAAO;GAAO;GAAQ;EAAI,CAAA,GAAG;;AAG7E,SAAgB,iBAAiB,OAA8B;CAC7D,MAAM,MAAMA,2BAAAA,sBAAsB;CAClC,MAAM,2BAA2B,QAAQ,IAAI,cAAc,IAAI,WAAW;AAE1E,QADkB,IAAI,SAAS,YAAY,2BACxB,iBAAA,GAAA,kBAAA,KAAC,QAAD,EAAQ,GAAI,OAAS,CAAA,GAAG"}