@liveblocks/react-ui 2.18.3 → 2.18.4-uns1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_private/index.cjs +118 -0
- package/dist/_private/index.cjs.map +1 -0
- package/dist/_private/index.js +54 -117
- package/dist/_private/index.js.map +1 -1
- package/dist/components/{Comment.mjs → Comment.cjs} +196 -169
- package/dist/components/{Comment.mjs.map → Comment.cjs.map} +1 -1
- package/dist/components/Comment.js +168 -195
- package/dist/components/Comment.js.map +1 -1
- package/dist/components/{Composer.mjs → Composer.cjs} +151 -148
- package/dist/components/{Composer.mjs.map → Composer.cjs.map} +1 -1
- package/dist/components/Composer.js +147 -150
- package/dist/components/Composer.js.map +1 -1
- package/dist/components/HistoryVersionSummary.cjs +45 -0
- package/dist/components/{HistoryVersionSummary.mjs.map → HistoryVersionSummary.cjs.map} +1 -1
- package/dist/components/HistoryVersionSummary.js +17 -19
- package/dist/components/HistoryVersionSummary.js.map +1 -1
- package/dist/components/HistoryVersionSummaryList.cjs +25 -0
- package/dist/components/{HistoryVersionSummaryList.mjs.map → HistoryVersionSummaryList.cjs.map} +1 -1
- package/dist/components/HistoryVersionSummaryList.js +8 -10
- package/dist/components/HistoryVersionSummaryList.js.map +1 -1
- package/dist/components/{InboxNotification.mjs → InboxNotification.cjs} +124 -122
- package/dist/components/{InboxNotification.mjs.map → InboxNotification.cjs.map} +1 -1
- package/dist/components/InboxNotification.js +121 -123
- package/dist/components/InboxNotification.js.map +1 -1
- package/dist/components/InboxNotificationList.cjs +42 -0
- package/dist/components/{InboxNotificationList.mjs.map → InboxNotificationList.cjs.map} +1 -1
- package/dist/components/InboxNotificationList.js +14 -16
- package/dist/components/InboxNotificationList.js.map +1 -1
- package/dist/components/{Thread.mjs → Thread.cjs} +70 -49
- package/dist/components/{Thread.mjs.map → Thread.cjs.map} +1 -1
- package/dist/components/Thread.js +48 -69
- package/dist/components/Thread.js.map +1 -1
- package/dist/components/internal/{Attachment.mjs → Attachment.cjs} +82 -78
- package/dist/components/internal/{Attachment.mjs.map → Attachment.cjs.map} +1 -1
- package/dist/components/internal/Attachment.js +77 -81
- package/dist/components/internal/Attachment.js.map +1 -1
- package/dist/components/internal/{Attribution.mjs → Attribution.cjs} +10 -8
- package/dist/components/internal/{Attribution.mjs.map → Attribution.cjs.map} +1 -1
- package/dist/components/internal/Attribution.js +7 -9
- package/dist/components/internal/Attribution.js.map +1 -1
- package/dist/components/internal/Avatar.cjs +48 -0
- package/dist/components/internal/{Avatar.mjs.map → Avatar.cjs.map} +1 -1
- package/dist/components/internal/Avatar.js +18 -20
- package/dist/components/internal/Avatar.js.map +1 -1
- package/dist/components/internal/Button.cjs +80 -0
- package/dist/components/internal/{Button.mjs.map → Button.cjs.map} +1 -1
- package/dist/components/internal/Button.js +19 -23
- package/dist/components/internal/Button.js.map +1 -1
- package/dist/components/internal/Dropdown.cjs +92 -0
- package/dist/components/internal/{Dropdown.mjs.map → Dropdown.cjs.map} +1 -1
- package/dist/components/internal/Dropdown.js +22 -47
- package/dist/components/internal/Dropdown.js.map +1 -1
- package/dist/components/internal/Emoji.cjs +19 -0
- package/dist/components/internal/{Emoji.mjs.map → Emoji.cjs.map} +1 -1
- package/dist/components/internal/Emoji.js +8 -10
- package/dist/components/internal/Emoji.js.map +1 -1
- package/dist/components/internal/EmojiPicker.cjs +208 -0
- package/dist/components/internal/{EmojiPicker.mjs.map → EmojiPicker.cjs.map} +1 -1
- package/dist/components/internal/EmojiPicker.js +52 -76
- package/dist/components/internal/EmojiPicker.js.map +1 -1
- package/dist/components/internal/{Icon.mjs → Icon.cjs} +10 -6
- package/dist/components/internal/{Icon.mjs.map → Icon.cjs.map} +1 -1
- package/dist/components/internal/Icon.js +5 -9
- package/dist/components/internal/Icon.js.map +1 -1
- package/dist/components/internal/{InboxNotificationThread.mjs → InboxNotificationThread.cjs} +34 -30
- package/dist/components/internal/{InboxNotificationThread.mjs.map → InboxNotificationThread.cjs.map} +1 -1
- package/dist/components/internal/InboxNotificationThread.js +29 -33
- package/dist/components/internal/InboxNotificationThread.js.map +1 -1
- package/dist/components/internal/List.cjs +36 -0
- package/dist/components/internal/{List.mjs.map → List.cjs.map} +1 -1
- package/dist/components/internal/List.js +14 -16
- package/dist/components/internal/List.js.map +1 -1
- package/dist/components/internal/Room.cjs +24 -0
- package/dist/components/internal/{Room.mjs.map → Room.cjs.map} +1 -1
- package/dist/components/internal/Room.js +9 -11
- package/dist/components/internal/Room.js.map +1 -1
- package/dist/components/internal/Tooltip.cjs +134 -0
- package/dist/components/internal/{Tooltip.mjs.map → Tooltip.cjs.map} +1 -1
- package/dist/components/internal/Tooltip.js +29 -54
- package/dist/components/internal/Tooltip.js.map +1 -1
- package/dist/components/internal/User.cjs +28 -0
- package/dist/components/internal/{User.mjs.map → User.cjs.map} +1 -1
- package/dist/components/internal/User.js +13 -15
- package/dist/components/internal/User.js.map +1 -1
- package/dist/components.cjs +48 -0
- package/dist/{components.mjs.map → components.cjs.map} +1 -1
- package/dist/components.js +9 -14
- package/dist/components.js.map +1 -1
- package/dist/config.cjs +39 -0
- package/dist/{config.mjs.map → config.cjs.map} +1 -1
- package/dist/config.js +15 -18
- package/dist/config.js.map +1 -1
- package/dist/{constants.mjs → constants.cjs} +6 -2
- package/dist/{constants.mjs.map → constants.cjs.map} +1 -1
- package/dist/constants.js +1 -5
- package/dist/constants.js.map +1 -1
- package/dist/icon.cjs +69 -0
- package/dist/icon.cjs.map +1 -0
- package/dist/icon.js +32 -68
- package/dist/icon.js.map +1 -1
- package/dist/icons/ArrowCornerDownRight.cjs +16 -0
- package/dist/icons/{ArrowCornerDownRight.mjs.map → ArrowCornerDownRight.cjs.map} +1 -1
- package/dist/icons/ArrowCornerDownRight.js +5 -7
- package/dist/icons/ArrowCornerDownRight.js.map +1 -1
- package/dist/icons/ArrowCornerUpRight.cjs +16 -0
- package/dist/icons/ArrowCornerUpRight.cjs.map +1 -0
- package/dist/icons/ArrowCornerUpRight.js +5 -7
- package/dist/icons/ArrowCornerUpRight.js.map +1 -1
- package/dist/icons/ArrowDown.cjs +16 -0
- package/dist/icons/ArrowDown.cjs.map +1 -0
- package/dist/icons/ArrowDown.js +5 -7
- package/dist/icons/ArrowDown.js.map +1 -1
- package/dist/icons/ArrowUp.cjs +16 -0
- package/dist/icons/ArrowUp.cjs.map +1 -0
- package/dist/icons/ArrowUp.js +5 -7
- package/dist/icons/ArrowUp.js.map +1 -1
- package/dist/icons/{Attachment.mjs → Attachment.cjs} +8 -6
- package/dist/icons/{Attachment.mjs.map → Attachment.cjs.map} +1 -1
- package/dist/icons/Attachment.js +5 -7
- package/dist/icons/Attachment.js.map +1 -1
- package/dist/icons/Blockquote.cjs +16 -0
- package/dist/icons/Blockquote.cjs.map +1 -0
- package/dist/icons/Blockquote.js +5 -7
- package/dist/icons/Blockquote.js.map +1 -1
- package/dist/icons/Bold.cjs +16 -0
- package/dist/icons/{Bold.mjs.map → Bold.cjs.map} +1 -1
- package/dist/icons/Bold.js +5 -7
- package/dist/icons/Bold.js.map +1 -1
- package/dist/icons/Check.cjs +16 -0
- package/dist/icons/Check.cjs.map +1 -0
- package/dist/icons/Check.js +5 -7
- package/dist/icons/Check.js.map +1 -1
- package/dist/icons/ChevronDown.cjs +16 -0
- package/dist/icons/{ChevronDown.mjs.map → ChevronDown.cjs.map} +1 -1
- package/dist/icons/ChevronDown.js +5 -7
- package/dist/icons/ChevronDown.js.map +1 -1
- package/dist/icons/ChevronLeft.cjs +16 -0
- package/dist/icons/{ChevronLeft.mjs.map → ChevronLeft.cjs.map} +1 -1
- package/dist/icons/ChevronLeft.js +5 -7
- package/dist/icons/ChevronLeft.js.map +1 -1
- package/dist/icons/ChevronRight.cjs +16 -0
- package/dist/icons/{ChevronRight.mjs.map → ChevronRight.cjs.map} +1 -1
- package/dist/icons/ChevronRight.js +5 -7
- package/dist/icons/ChevronRight.js.map +1 -1
- package/dist/icons/ChevronUp.cjs +16 -0
- package/dist/icons/{ChevronUp.mjs.map → ChevronUp.cjs.map} +1 -1
- package/dist/icons/ChevronUp.js +5 -7
- package/dist/icons/ChevronUp.js.map +1 -1
- package/dist/icons/Code.cjs +16 -0
- package/dist/icons/Code.cjs.map +1 -0
- package/dist/icons/Code.js +5 -7
- package/dist/icons/Code.js.map +1 -1
- package/dist/icons/Comment.cjs +16 -0
- package/dist/icons/{Comment.mjs.map → Comment.cjs.map} +1 -1
- package/dist/icons/Comment.js +5 -7
- package/dist/icons/Comment.js.map +1 -1
- package/dist/icons/Cross.cjs +21 -0
- package/dist/icons/Cross.cjs.map +1 -0
- package/dist/icons/Cross.js +6 -8
- package/dist/icons/Cross.js.map +1 -1
- package/dist/icons/Delete.cjs +16 -0
- package/dist/icons/{Delete.mjs.map → Delete.cjs.map} +1 -1
- package/dist/icons/Delete.js +5 -7
- package/dist/icons/Delete.js.map +1 -1
- package/dist/icons/Edit.cjs +16 -0
- package/dist/icons/{Edit.mjs.map → Edit.cjs.map} +1 -1
- package/dist/icons/Edit.js +5 -7
- package/dist/icons/Edit.js.map +1 -1
- package/dist/icons/Ellipsis.cjs +31 -0
- package/dist/icons/Ellipsis.cjs.map +1 -0
- package/dist/icons/Ellipsis.js +7 -9
- package/dist/icons/Ellipsis.js.map +1 -1
- package/dist/icons/Emoji.cjs +34 -0
- package/dist/icons/Emoji.cjs.map +1 -0
- package/dist/icons/Emoji.js +9 -11
- package/dist/icons/Emoji.js.map +1 -1
- package/dist/icons/EmojiAdd.cjs +37 -0
- package/dist/icons/EmojiAdd.cjs.map +1 -0
- package/dist/icons/EmojiAdd.js +10 -12
- package/dist/icons/EmojiAdd.js.map +1 -1
- package/dist/icons/H1.cjs +16 -0
- package/dist/icons/{H1.mjs.map → H1.cjs.map} +1 -1
- package/dist/icons/H1.js +5 -7
- package/dist/icons/H1.js.map +1 -1
- package/dist/icons/H2.cjs +16 -0
- package/dist/icons/H2.cjs.map +1 -0
- package/dist/icons/H2.js +5 -7
- package/dist/icons/H2.js.map +1 -1
- package/dist/icons/H3.cjs +16 -0
- package/dist/icons/{H3.mjs.map → H3.cjs.map} +1 -1
- package/dist/icons/H3.js +5 -7
- package/dist/icons/H3.js.map +1 -1
- package/dist/icons/Italic.cjs +16 -0
- package/dist/icons/{Italic.mjs.map → Italic.cjs.map} +1 -1
- package/dist/icons/Italic.js +5 -7
- package/dist/icons/Italic.js.map +1 -1
- package/dist/icons/Lengthen.cjs +16 -0
- package/dist/icons/Lengthen.cjs.map +1 -0
- package/dist/icons/Lengthen.js +5 -7
- package/dist/icons/Lengthen.js.map +1 -1
- package/dist/icons/ListOrdered.cjs +16 -0
- package/dist/icons/{ListOrdered.mjs.map → ListOrdered.cjs.map} +1 -1
- package/dist/icons/ListOrdered.js +5 -7
- package/dist/icons/ListOrdered.js.map +1 -1
- package/dist/icons/ListUnordered.cjs +39 -0
- package/dist/icons/ListUnordered.cjs.map +1 -0
- package/dist/icons/ListUnordered.js +10 -12
- package/dist/icons/ListUnordered.js.map +1 -1
- package/dist/icons/Mention.cjs +21 -0
- package/dist/icons/Mention.cjs.map +1 -0
- package/dist/icons/Mention.js +6 -8
- package/dist/icons/Mention.js.map +1 -1
- package/dist/icons/QuestionMark.cjs +26 -0
- package/dist/icons/QuestionMark.cjs.map +1 -0
- package/dist/icons/QuestionMark.js +7 -9
- package/dist/icons/QuestionMark.js.map +1 -1
- package/dist/icons/Redo.cjs +21 -0
- package/dist/icons/Redo.cjs.map +1 -0
- package/dist/icons/Redo.js +6 -8
- package/dist/icons/Redo.js.map +1 -1
- package/dist/icons/Resolve.cjs +23 -0
- package/dist/icons/Resolve.cjs.map +1 -0
- package/dist/icons/Resolve.js +6 -8
- package/dist/icons/Resolve.js.map +1 -1
- package/dist/icons/Resolved.cjs +25 -0
- package/dist/icons/Resolved.cjs.map +1 -0
- package/dist/icons/Resolved.js +6 -8
- package/dist/icons/Resolved.js.map +1 -1
- package/dist/icons/Restore.cjs +21 -0
- package/dist/icons/Restore.cjs.map +1 -0
- package/dist/icons/Restore.js +6 -8
- package/dist/icons/Restore.js.map +1 -1
- package/dist/icons/Search.cjs +16 -0
- package/dist/icons/{Search.mjs.map → Search.cjs.map} +1 -1
- package/dist/icons/Search.js +5 -7
- package/dist/icons/Search.js.map +1 -1
- package/dist/icons/Send.cjs +16 -0
- package/dist/icons/Send.cjs.map +1 -0
- package/dist/icons/Send.js +5 -7
- package/dist/icons/Send.js.map +1 -1
- package/dist/icons/Shorten.cjs +16 -0
- package/dist/icons/{Shorten.mjs.map → Shorten.cjs.map} +1 -1
- package/dist/icons/Shorten.js +5 -7
- package/dist/icons/Shorten.js.map +1 -1
- package/dist/icons/{Sparkles.mjs → Sparkles.cjs} +8 -6
- package/dist/icons/{Sparkles.mjs.map → Sparkles.cjs.map} +1 -1
- package/dist/icons/Sparkles.js +5 -7
- package/dist/icons/Sparkles.js.map +1 -1
- package/dist/icons/SparklesText.cjs +21 -0
- package/dist/icons/{SparklesText.mjs.map → SparklesText.cjs.map} +1 -1
- package/dist/icons/SparklesText.js +6 -8
- package/dist/icons/SparklesText.js.map +1 -1
- package/dist/icons/Spinner.cjs +17 -0
- package/dist/icons/Spinner.cjs.map +1 -0
- package/dist/icons/Spinner.js +5 -7
- package/dist/icons/Spinner.js.map +1 -1
- package/dist/icons/Strikethrough.cjs +16 -0
- package/dist/icons/{Strikethrough.mjs.map → Strikethrough.cjs.map} +1 -1
- package/dist/icons/Strikethrough.js +5 -7
- package/dist/icons/Strikethrough.js.map +1 -1
- package/dist/icons/Text.cjs +16 -0
- package/dist/icons/{Text.mjs.map → Text.cjs.map} +1 -1
- package/dist/icons/Text.js +5 -7
- package/dist/icons/Text.js.map +1 -1
- package/dist/icons/Translate.cjs +21 -0
- package/dist/icons/{Translate.mjs.map → Translate.cjs.map} +1 -1
- package/dist/icons/Translate.js +6 -8
- package/dist/icons/Translate.js.map +1 -1
- package/dist/icons/Underline.cjs +16 -0
- package/dist/icons/Underline.cjs.map +1 -0
- package/dist/icons/Underline.js +5 -7
- package/dist/icons/Underline.js.map +1 -1
- package/dist/icons/Undo.cjs +21 -0
- package/dist/icons/Undo.cjs.map +1 -0
- package/dist/icons/Undo.js +6 -8
- package/dist/icons/Undo.js.map +1 -1
- package/dist/icons/Warning.cjs +23 -0
- package/dist/icons/Warning.cjs.map +1 -0
- package/dist/icons/Warning.js +6 -8
- package/dist/icons/Warning.js.map +1 -1
- package/dist/icons/index.cjs +96 -0
- package/dist/icons/index.cjs.map +1 -0
- package/dist/icons/index.js +45 -95
- package/dist/icons/index.js.map +1 -1
- package/dist/index.cjs +28 -0
- package/dist/{index.mjs.map → index.cjs.map} +1 -1
- package/dist/index.js +14 -26
- package/dist/index.js.map +1 -1
- package/dist/{overrides.mjs → overrides.cjs} +32 -27
- package/dist/{overrides.mjs.map → overrides.cjs.map} +1 -1
- package/dist/overrides.js +26 -31
- package/dist/overrides.js.map +1 -1
- package/dist/primitives/Comment/{index.mjs → index.cjs} +35 -31
- package/dist/primitives/Comment/{index.mjs.map → index.cjs.map} +1 -1
- package/dist/primitives/Comment/index.js +30 -34
- package/dist/primitives/Comment/index.js.map +1 -1
- package/dist/primitives/Comment/{utils.mjs → utils.cjs} +7 -2
- package/dist/primitives/Comment/{utils.mjs.map → utils.cjs.map} +1 -1
- package/dist/primitives/Comment/utils.js +1 -6
- package/dist/primitives/Comment/utils.js.map +1 -1
- package/dist/primitives/Composer/contexts.cjs +60 -0
- package/dist/primitives/Composer/{contexts.mjs.map → contexts.cjs.map} +1 -1
- package/dist/primitives/Composer/contexts.js +18 -30
- package/dist/primitives/Composer/contexts.js.map +1 -1
- package/dist/primitives/Composer/{index.mjs → index.cjs} +305 -273
- package/dist/primitives/Composer/{index.mjs.map → index.cjs.map} +1 -1
- package/dist/primitives/Composer/index.js +272 -304
- package/dist/primitives/Composer/index.js.map +1 -1
- package/dist/primitives/Composer/{utils.mjs → utils.cjs} +79 -64
- package/dist/primitives/Composer/{utils.mjs.map → utils.cjs.map} +1 -1
- package/dist/primitives/Composer/utils.js +63 -78
- package/dist/primitives/Composer/utils.js.map +1 -1
- package/dist/primitives/EmojiPicker/contexts.cjs +19 -0
- package/dist/primitives/EmojiPicker/{contexts.mjs.map → contexts.cjs.map} +1 -1
- package/dist/primitives/EmojiPicker/contexts.js +6 -9
- package/dist/primitives/EmojiPicker/contexts.js.map +1 -1
- package/dist/primitives/EmojiPicker/{index.mjs → index.cjs} +96 -92
- package/dist/primitives/EmojiPicker/{index.mjs.map → index.cjs.map} +1 -1
- package/dist/primitives/EmojiPicker/index.js +91 -95
- package/dist/primitives/EmojiPicker/index.js.map +1 -1
- package/dist/primitives/EmojiPicker/{utils.mjs → utils.cjs} +14 -10
- package/dist/primitives/EmojiPicker/{utils.mjs.map → utils.cjs.map} +1 -1
- package/dist/primitives/EmojiPicker/utils.js +9 -13
- package/dist/primitives/EmojiPicker/utils.js.map +1 -1
- package/dist/primitives/FileSize.cjs +36 -0
- package/dist/primitives/{FileSize.mjs.map → FileSize.cjs.map} +1 -1
- package/dist/primitives/FileSize.js +10 -12
- package/dist/primitives/FileSize.js.map +1 -1
- package/dist/primitives/{Timestamp.mjs → Timestamp.cjs} +27 -25
- package/dist/primitives/{Timestamp.mjs.map → Timestamp.cjs.map} +1 -1
- package/dist/primitives/Timestamp.js +24 -26
- package/dist/primitives/Timestamp.js.map +1 -1
- package/dist/primitives/index.cjs +20 -0
- package/dist/primitives/index.cjs.map +1 -0
- package/dist/primitives/index.js +10 -19
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/internal/Emoji.cjs +32 -0
- package/dist/primitives/internal/{Emoji.mjs.map → Emoji.cjs.map} +1 -1
- package/dist/primitives/internal/Emoji.js +9 -11
- package/dist/primitives/internal/Emoji.js.map +1 -1
- package/dist/shared.cjs +13 -0
- package/dist/{shared.mjs.map → shared.cjs.map} +1 -1
- package/dist/shared.js +6 -8
- package/dist/shared.js.map +1 -1
- package/dist/slate/plugins/{auto-formatting.mjs → auto-formatting.cjs} +18 -16
- package/dist/slate/plugins/{auto-formatting.mjs.map → auto-formatting.cjs.map} +1 -1
- package/dist/slate/plugins/auto-formatting.js +15 -17
- package/dist/slate/plugins/auto-formatting.js.map +1 -1
- package/dist/slate/plugins/{auto-links.mjs → auto-links.cjs} +43 -40
- package/dist/slate/plugins/{auto-links.mjs.map → auto-links.cjs.map} +1 -1
- package/dist/slate/plugins/auto-links.js +39 -42
- package/dist/slate/plugins/auto-links.js.map +1 -1
- package/dist/slate/plugins/{custom-links.mjs → custom-links.cjs} +19 -16
- package/dist/slate/plugins/{custom-links.mjs.map → custom-links.cjs.map} +1 -1
- package/dist/slate/plugins/custom-links.js +15 -18
- package/dist/slate/plugins/custom-links.js.map +1 -1
- package/dist/slate/plugins/empty-clear-formatting.cjs +18 -0
- package/dist/slate/plugins/{empty-clear-formatting.mjs.map → empty-clear-formatting.cjs.map} +1 -1
- package/dist/slate/plugins/empty-clear-formatting.js +5 -7
- package/dist/slate/plugins/empty-clear-formatting.js.map +1 -1
- package/dist/slate/plugins/mentions.cjs +129 -0
- package/dist/slate/plugins/{mentions.mjs.map → mentions.cjs.map} +1 -1
- package/dist/slate/plugins/mentions.js +35 -42
- package/dist/slate/plugins/mentions.js.map +1 -1
- package/dist/slate/plugins/normalize.cjs +28 -0
- package/dist/slate/plugins/normalize.cjs.map +1 -0
- package/dist/slate/plugins/normalize.js +8 -10
- package/dist/slate/plugins/normalize.js.map +1 -1
- package/dist/slate/plugins/{paste.mjs → paste.cjs} +14 -12
- package/dist/slate/plugins/{paste.mjs.map → paste.cjs.map} +1 -1
- package/dist/slate/plugins/paste.js +11 -13
- package/dist/slate/plugins/paste.js.map +1 -1
- package/dist/slate/utils/get-character.cjs +50 -0
- package/dist/slate/utils/{get-character.mjs.map → get-character.cjs.map} +1 -1
- package/dist/slate/utils/get-character.js +10 -13
- package/dist/slate/utils/get-character.js.map +1 -1
- package/dist/slate/utils/get-dom-range.cjs +17 -0
- package/dist/slate/utils/{get-dom-range.mjs.map → get-dom-range.cjs.map} +1 -1
- package/dist/slate/utils/get-dom-range.js +3 -5
- package/dist/slate/utils/get-dom-range.js.map +1 -1
- package/dist/slate/utils/{get-match-range.mjs → get-match-range.cjs} +14 -12
- package/dist/slate/utils/{get-match-range.mjs.map → get-match-range.cjs.map} +1 -1
- package/dist/slate/utils/get-match-range.js +11 -13
- package/dist/slate/utils/get-match-range.js.map +1 -1
- package/dist/slate/utils/is-empty-string.cjs +8 -0
- package/dist/slate/utils/is-empty-string.cjs.map +1 -0
- package/dist/slate/utils/is-empty-string.js +1 -3
- package/dist/slate/utils/is-empty-string.js.map +1 -1
- package/dist/slate/utils/is-empty.cjs +27 -0
- package/dist/slate/utils/{is-empty.mjs.map → is-empty.cjs.map} +1 -1
- package/dist/slate/utils/is-empty.js +8 -10
- package/dist/slate/utils/is-empty.js.map +1 -1
- package/dist/slate/utils/{is-text.mjs → is-text.cjs} +5 -2
- package/dist/slate/utils/{is-text.mjs.map → is-text.cjs.map} +1 -1
- package/dist/slate/utils/is-text.js +1 -4
- package/dist/slate/utils/is-text.js.map +1 -1
- package/dist/slate/utils/{is-whitespace-character.mjs → is-whitespace-character.cjs} +4 -2
- package/dist/slate/utils/{is-whitespace-character.mjs.map → is-whitespace-character.cjs.map} +1 -1
- package/dist/slate/utils/is-whitespace-character.js +1 -3
- package/dist/slate/utils/is-whitespace-character.js.map +1 -1
- package/dist/slate/utils/marks.cjs +62 -0
- package/dist/slate/utils/{marks.mjs.map → marks.cjs.map} +1 -1
- package/dist/slate/utils/marks.js +12 -19
- package/dist/slate/utils/marks.js.map +1 -1
- package/dist/slate/utils/selection-contains-inlines.cjs +36 -0
- package/dist/slate/utils/selection-contains-inlines.cjs.map +1 -0
- package/dist/slate/utils/selection-contains-inlines.js +7 -9
- package/dist/slate/utils/selection-contains-inlines.js.map +1 -1
- package/dist/utils/{Persist.mjs → Persist.cjs} +26 -22
- package/dist/utils/{Persist.mjs.map → Persist.cjs.map} +1 -1
- package/dist/utils/Persist.js +21 -25
- package/dist/utils/Persist.js.map +1 -1
- package/dist/utils/Portal.cjs +29 -0
- package/dist/utils/{Portal.mjs.map → Portal.cjs.map} +1 -1
- package/dist/utils/Portal.js +9 -11
- package/dist/utils/Portal.js.map +1 -1
- package/dist/utils/{capitalize.mjs → capitalize.cjs} +4 -2
- package/dist/utils/capitalize.cjs.map +1 -0
- package/dist/utils/capitalize.js +1 -3
- package/dist/utils/capitalize.js.map +1 -1
- package/dist/utils/{clamp.mjs → clamp.cjs} +4 -2
- package/dist/utils/clamp.cjs.map +1 -0
- package/dist/utils/clamp.js +1 -3
- package/dist/utils/clamp.js.map +1 -1
- package/dist/utils/{class-names.mjs → class-names.cjs} +4 -2
- package/dist/utils/{class-names.mjs.map → class-names.cjs.map} +1 -1
- package/dist/utils/class-names.js +1 -3
- package/dist/utils/class-names.js.map +1 -1
- package/dist/utils/{data-transfer.mjs → data-transfer.cjs} +6 -4
- package/dist/utils/{data-transfer.mjs.map → data-transfer.cjs.map} +1 -1
- package/dist/utils/data-transfer.js +3 -5
- package/dist/utils/data-transfer.js.map +1 -1
- package/dist/utils/{download.mjs → download.cjs} +4 -2
- package/dist/utils/download.cjs.map +1 -0
- package/dist/utils/download.js +1 -3
- package/dist/utils/download.js.map +1 -1
- package/dist/utils/exists.cjs +8 -0
- package/dist/utils/exists.cjs.map +1 -0
- package/dist/utils/exists.js +1 -3
- package/dist/utils/exists.js.map +1 -1
- package/dist/utils/{find-last-index.mjs → find-last-index.cjs} +4 -2
- package/dist/utils/find-last-index.cjs.map +1 -0
- package/dist/utils/find-last-index.js +1 -3
- package/dist/utils/find-last-index.js.map +1 -1
- package/dist/utils/{format-file-size.mjs → format-file-size.cjs} +6 -4
- package/dist/utils/format-file-size.cjs.map +1 -0
- package/dist/utils/format-file-size.js +3 -5
- package/dist/utils/format-file-size.js.map +1 -1
- package/dist/utils/{get-initials.mjs → get-initials.cjs} +4 -2
- package/dist/utils/get-initials.cjs.map +1 -0
- package/dist/utils/get-initials.js +1 -3
- package/dist/utils/get-initials.js.map +1 -1
- package/dist/utils/intl.cjs +30 -0
- package/dist/utils/{intl.mjs.map → intl.cjs.map} +1 -1
- package/dist/utils/intl.js +6 -11
- package/dist/utils/intl.js.map +1 -1
- package/dist/utils/{is-apple.mjs → is-apple.cjs} +4 -2
- package/dist/utils/is-apple.cjs.map +1 -0
- package/dist/utils/is-apple.js +1 -3
- package/dist/utils/is-apple.js.map +1 -1
- package/dist/utils/{is-key.mjs → is-key.cjs} +6 -4
- package/dist/utils/{is-key.mjs.map → is-key.cjs.map} +1 -1
- package/dist/utils/is-key.js +3 -5
- package/dist/utils/is-key.js.map +1 -1
- package/dist/utils/{memoize.mjs → memoize.cjs} +6 -4
- package/dist/utils/memoize.cjs.map +1 -0
- package/dist/utils/memoize.js +3 -5
- package/dist/utils/memoize.js.map +1 -1
- package/dist/utils/{pluralize.mjs → pluralize.cjs} +4 -2
- package/dist/utils/pluralize.cjs.map +1 -0
- package/dist/utils/pluralize.js +1 -3
- package/dist/utils/pluralize.js.map +1 -1
- package/dist/utils/{request-idle-callback.mjs → request-idle-callback.cjs} +5 -2
- package/dist/utils/{request-idle-callback.mjs.map → request-idle-callback.cjs.map} +1 -1
- package/dist/utils/request-idle-callback.js +1 -4
- package/dist/utils/request-idle-callback.js.map +1 -1
- package/dist/utils/{request-submit.mjs → request-submit.cjs} +4 -2
- package/dist/utils/request-submit.cjs.map +1 -0
- package/dist/utils/request-submit.js +1 -3
- package/dist/utils/request-submit.js.map +1 -1
- package/dist/utils/{url.mjs → url.cjs} +4 -2
- package/dist/utils/url.cjs.map +1 -0
- package/dist/utils/url.js +1 -3
- package/dist/utils/url.js.map +1 -1
- package/dist/utils/{use-controllable-state.mjs → use-controllable-state.cjs} +11 -9
- package/dist/utils/{use-controllable-state.mjs.map → use-controllable-state.cjs.map} +1 -1
- package/dist/utils/use-controllable-state.js +8 -10
- package/dist/utils/use-controllable-state.js.map +1 -1
- package/dist/utils/use-index.cjs +32 -0
- package/dist/utils/{use-index.mjs.map → use-index.cjs.map} +1 -1
- package/dist/utils/use-index.js +11 -13
- package/dist/utils/use-index.js.map +1 -1
- package/dist/utils/use-initial.cjs +11 -0
- package/dist/utils/{use-initial.mjs.map → use-initial.cjs.map} +1 -1
- package/dist/utils/use-initial.js +3 -5
- package/dist/utils/use-initial.js.map +1 -1
- package/dist/utils/{use-interval.mjs → use-interval.cjs} +8 -6
- package/dist/utils/use-interval.cjs.map +1 -0
- package/dist/utils/use-interval.js +5 -7
- package/dist/utils/use-interval.js.map +1 -1
- package/dist/utils/use-latest.cjs +14 -0
- package/dist/utils/{use-latest.mjs.map → use-latest.cjs.map} +1 -1
- package/dist/utils/use-latest.js +4 -6
- package/dist/utils/use-latest.js.map +1 -1
- package/dist/utils/use-observable.cjs +15 -0
- package/dist/utils/{use-observable.mjs.map → use-observable.cjs.map} +1 -1
- package/dist/utils/use-observable.js +5 -7
- package/dist/utils/use-observable.js.map +1 -1
- package/dist/utils/{use-refs.mjs → use-refs.cjs} +6 -4
- package/dist/utils/{use-refs.mjs.map → use-refs.cjs.map} +1 -1
- package/dist/utils/use-refs.js +3 -5
- package/dist/utils/use-refs.js.map +1 -1
- package/dist/utils/use-rerender.cjs +14 -0
- package/dist/utils/{use-rerender.mjs.map → use-rerender.cjs.map} +1 -1
- package/dist/utils/use-rerender.js +3 -5
- package/dist/utils/use-rerender.js.map +1 -1
- package/dist/utils/{use-visible.mjs → use-visible.cjs} +11 -8
- package/dist/utils/{use-visible.mjs.map → use-visible.cjs.map} +1 -1
- package/dist/utils/use-visible.js +7 -10
- package/dist/utils/use-visible.js.map +1 -1
- package/dist/utils/{use-window-focus.mjs → use-window-focus.cjs} +6 -4
- package/dist/utils/use-window-focus.cjs.map +1 -0
- package/dist/utils/use-window-focus.js +3 -5
- package/dist/utils/use-window-focus.js.map +1 -1
- package/dist/utils/{visually-hidden.mjs → visually-hidden.cjs} +4 -2
- package/dist/utils/visually-hidden.cjs.map +1 -0
- package/dist/utils/visually-hidden.js +1 -3
- package/dist/utils/visually-hidden.js.map +1 -1
- package/dist/utils/{wrap.mjs → wrap.cjs} +4 -2
- package/dist/utils/wrap.cjs.map +1 -0
- package/dist/utils/wrap.js +1 -3
- package/dist/utils/wrap.js.map +1 -1
- package/dist/version.cjs +10 -0
- package/dist/{version.mjs.map → version.cjs.map} +1 -1
- package/dist/version.js +3 -7
- package/dist/version.js.map +1 -1
- package/package.json +28 -27
- package/styles/dark/attributes.css.d.cts +1 -0
- package/styles/dark/media-query.css.d.cts +1 -0
- package/styles.css.d.cts +1 -0
- package/dist/_private/index.mjs +0 -55
- package/dist/_private/index.mjs.map +0 -1
- package/dist/components/HistoryVersionSummary.mjs +0 -43
- package/dist/components/HistoryVersionSummaryList.mjs +0 -23
- package/dist/components/InboxNotificationList.mjs +0 -40
- package/dist/components/internal/Avatar.mjs +0 -46
- package/dist/components/internal/Button.mjs +0 -76
- package/dist/components/internal/Dropdown.mjs +0 -67
- package/dist/components/internal/Emoji.mjs +0 -17
- package/dist/components/internal/EmojiPicker.mjs +0 -184
- package/dist/components/internal/List.mjs +0 -34
- package/dist/components/internal/Room.mjs +0 -22
- package/dist/components/internal/Tooltip.mjs +0 -109
- package/dist/components/internal/User.mjs +0 -26
- package/dist/components.mjs +0 -43
- package/dist/config.mjs +0 -36
- package/dist/icon.mjs +0 -33
- package/dist/icon.mjs.map +0 -1
- package/dist/icons/ArrowCornerDownRight.mjs +0 -14
- package/dist/icons/ArrowCornerUpRight.mjs +0 -14
- package/dist/icons/ArrowCornerUpRight.mjs.map +0 -1
- package/dist/icons/ArrowDown.mjs +0 -14
- package/dist/icons/ArrowDown.mjs.map +0 -1
- package/dist/icons/ArrowUp.mjs +0 -14
- package/dist/icons/ArrowUp.mjs.map +0 -1
- package/dist/icons/Blockquote.mjs +0 -14
- package/dist/icons/Blockquote.mjs.map +0 -1
- package/dist/icons/Bold.mjs +0 -14
- package/dist/icons/Check.mjs +0 -14
- package/dist/icons/Check.mjs.map +0 -1
- package/dist/icons/ChevronDown.mjs +0 -14
- package/dist/icons/ChevronLeft.mjs +0 -14
- package/dist/icons/ChevronRight.mjs +0 -14
- package/dist/icons/ChevronUp.mjs +0 -14
- package/dist/icons/Code.mjs +0 -14
- package/dist/icons/Code.mjs.map +0 -1
- package/dist/icons/Comment.mjs +0 -14
- package/dist/icons/Cross.mjs +0 -19
- package/dist/icons/Cross.mjs.map +0 -1
- package/dist/icons/Delete.mjs +0 -14
- package/dist/icons/Edit.mjs +0 -14
- package/dist/icons/Ellipsis.mjs +0 -29
- package/dist/icons/Ellipsis.mjs.map +0 -1
- package/dist/icons/Emoji.mjs +0 -32
- package/dist/icons/Emoji.mjs.map +0 -1
- package/dist/icons/EmojiAdd.mjs +0 -35
- package/dist/icons/EmojiAdd.mjs.map +0 -1
- package/dist/icons/H1.mjs +0 -14
- package/dist/icons/H2.mjs +0 -14
- package/dist/icons/H2.mjs.map +0 -1
- package/dist/icons/H3.mjs +0 -14
- package/dist/icons/Italic.mjs +0 -14
- package/dist/icons/Lengthen.mjs +0 -14
- package/dist/icons/Lengthen.mjs.map +0 -1
- package/dist/icons/ListOrdered.mjs +0 -14
- package/dist/icons/ListUnordered.mjs +0 -37
- package/dist/icons/ListUnordered.mjs.map +0 -1
- package/dist/icons/Mention.mjs +0 -19
- package/dist/icons/Mention.mjs.map +0 -1
- package/dist/icons/QuestionMark.mjs +0 -24
- package/dist/icons/QuestionMark.mjs.map +0 -1
- package/dist/icons/Redo.mjs +0 -19
- package/dist/icons/Redo.mjs.map +0 -1
- package/dist/icons/Resolve.mjs +0 -21
- package/dist/icons/Resolve.mjs.map +0 -1
- package/dist/icons/Resolved.mjs +0 -23
- package/dist/icons/Resolved.mjs.map +0 -1
- package/dist/icons/Restore.mjs +0 -19
- package/dist/icons/Restore.mjs.map +0 -1
- package/dist/icons/Search.mjs +0 -14
- package/dist/icons/Send.mjs +0 -14
- package/dist/icons/Send.mjs.map +0 -1
- package/dist/icons/Shorten.mjs +0 -14
- package/dist/icons/SparklesText.mjs +0 -19
- package/dist/icons/Spinner.mjs +0 -15
- package/dist/icons/Spinner.mjs.map +0 -1
- package/dist/icons/Strikethrough.mjs +0 -14
- package/dist/icons/Text.mjs +0 -14
- package/dist/icons/Translate.mjs +0 -19
- package/dist/icons/Underline.mjs +0 -14
- package/dist/icons/Underline.mjs.map +0 -1
- package/dist/icons/Undo.mjs +0 -19
- package/dist/icons/Undo.mjs.map +0 -1
- package/dist/icons/Warning.mjs +0 -21
- package/dist/icons/Warning.mjs.map +0 -1
- package/dist/icons/index.mjs +0 -46
- package/dist/icons/index.mjs.map +0 -1
- package/dist/index.mjs +0 -16
- package/dist/primitives/Composer/contexts.mjs +0 -48
- package/dist/primitives/EmojiPicker/contexts.mjs +0 -16
- package/dist/primitives/FileSize.mjs +0 -34
- package/dist/primitives/index.mjs +0 -11
- package/dist/primitives/index.mjs.map +0 -1
- package/dist/primitives/internal/Emoji.mjs +0 -30
- package/dist/shared.mjs +0 -11
- package/dist/slate/plugins/empty-clear-formatting.mjs +0 -16
- package/dist/slate/plugins/mentions.mjs +0 -122
- package/dist/slate/plugins/normalize.mjs +0 -26
- package/dist/slate/plugins/normalize.mjs.map +0 -1
- package/dist/slate/utils/get-character.mjs +0 -47
- package/dist/slate/utils/get-dom-range.mjs +0 -15
- package/dist/slate/utils/is-empty-string.mjs +0 -6
- package/dist/slate/utils/is-empty-string.mjs.map +0 -1
- package/dist/slate/utils/is-empty.mjs +0 -25
- package/dist/slate/utils/marks.mjs +0 -55
- package/dist/slate/utils/selection-contains-inlines.mjs +0 -34
- package/dist/slate/utils/selection-contains-inlines.mjs.map +0 -1
- package/dist/utils/Portal.mjs +0 -27
- package/dist/utils/capitalize.mjs.map +0 -1
- package/dist/utils/clamp.mjs.map +0 -1
- package/dist/utils/download.mjs.map +0 -1
- package/dist/utils/exists.mjs +0 -6
- package/dist/utils/exists.mjs.map +0 -1
- package/dist/utils/find-last-index.mjs.map +0 -1
- package/dist/utils/format-file-size.mjs.map +0 -1
- package/dist/utils/get-initials.mjs.map +0 -1
- package/dist/utils/intl.mjs +0 -25
- package/dist/utils/is-apple.mjs.map +0 -1
- package/dist/utils/memoize.mjs.map +0 -1
- package/dist/utils/pluralize.mjs.map +0 -1
- package/dist/utils/request-submit.mjs.map +0 -1
- package/dist/utils/url.mjs.map +0 -1
- package/dist/utils/use-index.mjs +0 -30
- package/dist/utils/use-initial.mjs +0 -9
- package/dist/utils/use-interval.mjs.map +0 -1
- package/dist/utils/use-latest.mjs +0 -12
- package/dist/utils/use-observable.mjs +0 -13
- package/dist/utils/use-rerender.mjs +0 -12
- package/dist/utils/use-window-focus.mjs.map +0 -1
- package/dist/utils/visually-hidden.mjs.map +0 -1
- package/dist/utils/wrap.mjs.map +0 -1
- package/dist/version.mjs +0 -6
- /package/dist/_private/{index.d.mts → index.d.cts} +0 -0
- /package/dist/{index.d.mts → index.d.cts} +0 -0
- /package/dist/primitives/{index.d.mts → index.d.cts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-controllable-state.
|
|
1
|
+
{"version":3,"file":"use-controllable-state.cjs","sources":["../../src/utils/use-controllable-state.ts"],"sourcesContent":["import { console } from \"@liveblocks/core\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport function useControllableState<T>(\n value?: T,\n onChange?: (value: T) => void,\n defaultValue?: T\n) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const wasControlled = useRef(isControlled);\n\n useEffect(() => {\n if (\n process.env.NODE_ENV !== \"production\" &&\n wasControlled.current !== isControlled\n ) {\n console.warn(\n `A component is changing from ${\n wasControlled ? \"controlled\" : \"uncontrolled\"\n } to ${isControlled ? \"controlled\" : \"uncontrolled\"}.`\n );\n }\n\n wasControlled.current = isControlled;\n }, [isControlled]);\n\n const currentValue = isControlled ? value : uncontrolledValue;\n\n const setValue = useCallback(\n (value: T) => {\n if (isControlled) {\n return onChange?.(value);\n } else {\n setUncontrolledValue(value);\n\n return onChange?.(value);\n }\n },\n [isControlled, onChange]\n );\n\n return [currentValue, setValue] as const;\n}\n"],"names":["useState","useRef","useEffect","console","useCallback","value"],"mappings":";;;;;AAGgB,SAAA,oBAAA,CACd,KACA,EAAA,QAAA,EACA,YACA,EAAA;AACA,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAIA,eAAS,YAAY,CAAA,CAAA;AACvE,EAAA,MAAM,eAAe,KAAU,KAAA,KAAA,CAAA,CAAA;AAC/B,EAAM,MAAA,aAAA,GAAgBC,aAAO,YAAY,CAAA,CAAA;AAEzC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IACE,QAAQ,GAAI,CAAA,QAAA,KAAa,YACzB,IAAA,aAAA,CAAc,YAAY,YAC1B,EAAA;AACA,MAAQC,YAAA,CAAA,IAAA;AAAA,QACN,CACE,6BAAA,EAAA,aAAA,GAAgB,YAAe,GAAA,cAAA,CAAA,IAAA,EAC1B,eAAe,YAAe,GAAA,cAAA,CAAA,CAAA,CAAA;AAAA,OACvC,CAAA;AAAA,KACF;AAEA,IAAA,aAAA,CAAc,OAAU,GAAA,YAAA,CAAA;AAAA,GAC1B,EAAG,CAAC,YAAY,CAAC,CAAA,CAAA;AAEjB,EAAM,MAAA,YAAA,GAAe,eAAe,KAAQ,GAAA,iBAAA,CAAA;AAE5C,EAAA,MAAM,QAAW,GAAAC,iBAAA;AAAA,IACf,CAACC,MAAa,KAAA;AACZ,MAAA,IAAI,YAAc,EAAA;AAChB,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OAClB,MAAA;AACL,QAAA,oBAAA,CAAqBA,MAAK,CAAA,CAAA;AAE1B,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OACzB;AAAA,KACF;AAAA,IACA,CAAC,cAAc,QAAQ,CAAA;AAAA,GACzB,CAAA;AAEA,EAAO,OAAA,CAAC,cAAc,QAAQ,CAAA,CAAA;AAChC;;;;"}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var core = require('@liveblocks/core');
|
|
4
|
-
var react = require('react');
|
|
1
|
+
import { console } from '@liveblocks/core';
|
|
2
|
+
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
5
3
|
|
|
6
4
|
function useControllableState(value, onChange, defaultValue) {
|
|
7
|
-
const [uncontrolledValue, setUncontrolledValue] =
|
|
5
|
+
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
8
6
|
const isControlled = value !== void 0;
|
|
9
|
-
const wasControlled =
|
|
10
|
-
|
|
7
|
+
const wasControlled = useRef(isControlled);
|
|
8
|
+
useEffect(() => {
|
|
11
9
|
if (process.env.NODE_ENV !== "production" && wasControlled.current !== isControlled) {
|
|
12
|
-
|
|
10
|
+
console.warn(
|
|
13
11
|
`A component is changing from ${wasControlled ? "controlled" : "uncontrolled"} to ${isControlled ? "controlled" : "uncontrolled"}.`
|
|
14
12
|
);
|
|
15
13
|
}
|
|
16
14
|
wasControlled.current = isControlled;
|
|
17
15
|
}, [isControlled]);
|
|
18
16
|
const currentValue = isControlled ? value : uncontrolledValue;
|
|
19
|
-
const setValue =
|
|
17
|
+
const setValue = useCallback(
|
|
20
18
|
(value2) => {
|
|
21
19
|
if (isControlled) {
|
|
22
20
|
return onChange?.(value2);
|
|
@@ -30,5 +28,5 @@ function useControllableState(value, onChange, defaultValue) {
|
|
|
30
28
|
return [currentValue, setValue];
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
|
|
31
|
+
export { useControllableState };
|
|
34
32
|
//# sourceMappingURL=use-controllable-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-controllable-state.js","sources":["../../src/utils/use-controllable-state.ts"],"sourcesContent":["import { console } from \"@liveblocks/core\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport function useControllableState<T>(\n value?: T,\n onChange?: (value: T) => void,\n defaultValue?: T\n) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const wasControlled = useRef(isControlled);\n\n useEffect(() => {\n if (\n process.env.NODE_ENV !== \"production\" &&\n wasControlled.current !== isControlled\n ) {\n console.warn(\n `A component is changing from ${\n wasControlled ? \"controlled\" : \"uncontrolled\"\n } to ${isControlled ? \"controlled\" : \"uncontrolled\"}.`\n );\n }\n\n wasControlled.current = isControlled;\n }, [isControlled]);\n\n const currentValue = isControlled ? value : uncontrolledValue;\n\n const setValue = useCallback(\n (value: T) => {\n if (isControlled) {\n return onChange?.(value);\n } else {\n setUncontrolledValue(value);\n\n return onChange?.(value);\n }\n },\n [isControlled, onChange]\n );\n\n return [currentValue, setValue] as const;\n}\n"],"names":["
|
|
1
|
+
{"version":3,"file":"use-controllable-state.js","sources":["../../src/utils/use-controllable-state.ts"],"sourcesContent":["import { console } from \"@liveblocks/core\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport function useControllableState<T>(\n value?: T,\n onChange?: (value: T) => void,\n defaultValue?: T\n) {\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const isControlled = value !== undefined;\n const wasControlled = useRef(isControlled);\n\n useEffect(() => {\n if (\n process.env.NODE_ENV !== \"production\" &&\n wasControlled.current !== isControlled\n ) {\n console.warn(\n `A component is changing from ${\n wasControlled ? \"controlled\" : \"uncontrolled\"\n } to ${isControlled ? \"controlled\" : \"uncontrolled\"}.`\n );\n }\n\n wasControlled.current = isControlled;\n }, [isControlled]);\n\n const currentValue = isControlled ? value : uncontrolledValue;\n\n const setValue = useCallback(\n (value: T) => {\n if (isControlled) {\n return onChange?.(value);\n } else {\n setUncontrolledValue(value);\n\n return onChange?.(value);\n }\n },\n [isControlled, onChange]\n );\n\n return [currentValue, setValue] as const;\n}\n"],"names":["value"],"mappings":";;;AAGgB,SAAA,oBAAA,CACd,KACA,EAAA,QAAA,EACA,YACA,EAAA;AACA,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAS,YAAY,CAAA,CAAA;AACvE,EAAA,MAAM,eAAe,KAAU,KAAA,KAAA,CAAA,CAAA;AAC/B,EAAM,MAAA,aAAA,GAAgB,OAAO,YAAY,CAAA,CAAA;AAEzC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IACE,QAAQ,GAAI,CAAA,QAAA,KAAa,YACzB,IAAA,aAAA,CAAc,YAAY,YAC1B,EAAA;AACA,MAAQ,OAAA,CAAA,IAAA;AAAA,QACN,CACE,6BAAA,EAAA,aAAA,GAAgB,YAAe,GAAA,cAAA,CAAA,IAAA,EAC1B,eAAe,YAAe,GAAA,cAAA,CAAA,CAAA,CAAA;AAAA,OACvC,CAAA;AAAA,KACF;AAEA,IAAA,aAAA,CAAc,OAAU,GAAA,YAAA,CAAA;AAAA,GAC1B,EAAG,CAAC,YAAY,CAAC,CAAA,CAAA;AAEjB,EAAM,MAAA,YAAA,GAAe,eAAe,KAAQ,GAAA,iBAAA,CAAA;AAE5C,EAAA,MAAM,QAAW,GAAA,WAAA;AAAA,IACf,CAACA,MAAa,KAAA;AACZ,MAAA,IAAI,YAAc,EAAA;AAChB,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OAClB,MAAA;AACL,QAAA,oBAAA,CAAqBA,MAAK,CAAA,CAAA;AAE1B,QAAA,OAAO,WAAWA,MAAK,CAAA,CAAA;AAAA,OACzB;AAAA,KACF;AAAA,IACA,CAAC,cAAc,QAAQ,CAAA;AAAA,GACzB,CAAA;AAEA,EAAO,OAAA,CAAC,cAAc,QAAQ,CAAA,CAAA;AAChC;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var clamp = require('./clamp.cjs');
|
|
5
|
+
var wrap = require('./wrap.cjs');
|
|
6
|
+
|
|
7
|
+
const defaultOptions = {
|
|
8
|
+
wrap: true
|
|
9
|
+
};
|
|
10
|
+
function useIndex(initial, length, options) {
|
|
11
|
+
const { wrap: shouldWrap } = react.useMemo(() => {
|
|
12
|
+
return {
|
|
13
|
+
...defaultOptions,
|
|
14
|
+
...options
|
|
15
|
+
};
|
|
16
|
+
}, [options]);
|
|
17
|
+
const transform = react.useMemo(() => shouldWrap ? wrap.wrap : clamp.clamp, [shouldWrap]);
|
|
18
|
+
const [index, setIndex] = react.useState(initial);
|
|
19
|
+
react.useEffect(() => {
|
|
20
|
+
setIndex((index2) => clamp.clamp(index2, 0, Math.max(length - 1, 0)));
|
|
21
|
+
}, [length]);
|
|
22
|
+
const previousIndex = react.useCallback(() => {
|
|
23
|
+
setIndex((index2) => transform(index2 - 1, 0, Math.max(length, 0)));
|
|
24
|
+
}, [length, transform]);
|
|
25
|
+
const nextIndex = react.useCallback(() => {
|
|
26
|
+
setIndex((index2) => transform(index2 + 1, 0, Math.max(length, 0)));
|
|
27
|
+
}, [length, transform]);
|
|
28
|
+
return [index, previousIndex, nextIndex, setIndex];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
exports.useIndex = useIndex;
|
|
32
|
+
//# sourceMappingURL=use-index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-index.
|
|
1
|
+
{"version":3,"file":"use-index.cjs","sources":["../../src/utils/use-index.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { clamp } from \"./clamp\";\nimport { wrap } from \"./wrap\";\n\ntype Options = {\n wrap: boolean;\n};\n\nconst defaultOptions: Options = {\n wrap: true,\n};\n\nexport function useIndex(\n initial: number,\n length: number,\n options?: Partial<Options>\n) {\n const { wrap: shouldWrap } = useMemo(() => {\n return {\n ...defaultOptions,\n ...options,\n };\n }, [options]);\n const transform = useMemo(() => (shouldWrap ? wrap : clamp), [shouldWrap]);\n const [index, setIndex] = useState(initial);\n\n useEffect(() => {\n setIndex((index) => clamp(index, 0, Math.max(length - 1, 0)));\n }, [length]);\n\n const previousIndex = useCallback(() => {\n setIndex((index) => transform(index - 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n const nextIndex = useCallback(() => {\n setIndex((index) => transform(index + 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n return [index, previousIndex, nextIndex, setIndex] as const;\n}\n"],"names":["useMemo","wrap","clamp","useState","useEffect","index","useCallback"],"mappings":";;;;;;AASA,MAAM,cAA0B,GAAA;AAAA,EAC9B,IAAM,EAAA,IAAA;AACR,CAAA,CAAA;AAEgB,SAAA,QAAA,CACd,OACA,EAAA,MAAA,EACA,OACA,EAAA;AACA,EAAA,MAAM,EAAE,IAAA,EAAM,UAAW,EAAA,GAAIA,cAAQ,MAAM;AACzC,IAAO,OAAA;AAAA,MACL,GAAG,cAAA;AAAA,MACH,GAAG,OAAA;AAAA,KACL,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AACZ,EAAM,MAAA,SAAA,GAAYA,cAAQ,MAAO,UAAA,GAAaC,YAAOC,WAAQ,EAAA,CAAC,UAAU,CAAC,CAAA,CAAA;AACzE,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,eAAS,OAAO,CAAA,CAAA;AAE1C,EAAAC,eAAA,CAAU,MAAM;AACd,IAAS,QAAA,CAAA,CAACC,MAAU,KAAAH,WAAA,CAAMG,MAAO,EAAA,CAAA,EAAG,IAAK,CAAA,GAAA,CAAI,MAAS,GAAA,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC9D,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAM,MAAA,aAAA,GAAgBC,kBAAY,MAAM;AACtC,IAAS,QAAA,CAAA,CAACD,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAM,MAAA,SAAA,GAAYC,kBAAY,MAAM;AAClC,IAAS,QAAA,CAAA,CAACD,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAA,OAAO,CAAC,KAAA,EAAO,aAAe,EAAA,SAAA,EAAW,QAAQ,CAAA,CAAA;AACnD;;;;"}
|
package/dist/utils/use-index.js
CHANGED
|
@@ -1,32 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var clamp = require('./clamp.js');
|
|
5
|
-
var wrap = require('./wrap.js');
|
|
1
|
+
import { useMemo, useState, useEffect, useCallback } from 'react';
|
|
2
|
+
import { clamp } from './clamp.js';
|
|
3
|
+
import { wrap } from './wrap.js';
|
|
6
4
|
|
|
7
5
|
const defaultOptions = {
|
|
8
6
|
wrap: true
|
|
9
7
|
};
|
|
10
8
|
function useIndex(initial, length, options) {
|
|
11
|
-
const { wrap: shouldWrap } =
|
|
9
|
+
const { wrap: shouldWrap } = useMemo(() => {
|
|
12
10
|
return {
|
|
13
11
|
...defaultOptions,
|
|
14
12
|
...options
|
|
15
13
|
};
|
|
16
14
|
}, [options]);
|
|
17
|
-
const transform =
|
|
18
|
-
const [index, setIndex] =
|
|
19
|
-
|
|
20
|
-
setIndex((index2) => clamp
|
|
15
|
+
const transform = useMemo(() => shouldWrap ? wrap : clamp, [shouldWrap]);
|
|
16
|
+
const [index, setIndex] = useState(initial);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
setIndex((index2) => clamp(index2, 0, Math.max(length - 1, 0)));
|
|
21
19
|
}, [length]);
|
|
22
|
-
const previousIndex =
|
|
20
|
+
const previousIndex = useCallback(() => {
|
|
23
21
|
setIndex((index2) => transform(index2 - 1, 0, Math.max(length, 0)));
|
|
24
22
|
}, [length, transform]);
|
|
25
|
-
const nextIndex =
|
|
23
|
+
const nextIndex = useCallback(() => {
|
|
26
24
|
setIndex((index2) => transform(index2 + 1, 0, Math.max(length, 0)));
|
|
27
25
|
}, [length, transform]);
|
|
28
26
|
return [index, previousIndex, nextIndex, setIndex];
|
|
29
27
|
}
|
|
30
28
|
|
|
31
|
-
|
|
29
|
+
export { useIndex };
|
|
32
30
|
//# sourceMappingURL=use-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-index.js","sources":["../../src/utils/use-index.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { clamp } from \"./clamp\";\nimport { wrap } from \"./wrap\";\n\ntype Options = {\n wrap: boolean;\n};\n\nconst defaultOptions: Options = {\n wrap: true,\n};\n\nexport function useIndex(\n initial: number,\n length: number,\n options?: Partial<Options>\n) {\n const { wrap: shouldWrap } = useMemo(() => {\n return {\n ...defaultOptions,\n ...options,\n };\n }, [options]);\n const transform = useMemo(() => (shouldWrap ? wrap : clamp), [shouldWrap]);\n const [index, setIndex] = useState(initial);\n\n useEffect(() => {\n setIndex((index) => clamp(index, 0, Math.max(length - 1, 0)));\n }, [length]);\n\n const previousIndex = useCallback(() => {\n setIndex((index) => transform(index - 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n const nextIndex = useCallback(() => {\n setIndex((index) => transform(index + 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n return [index, previousIndex, nextIndex, setIndex] as const;\n}\n"],"names":["
|
|
1
|
+
{"version":3,"file":"use-index.js","sources":["../../src/utils/use-index.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from \"react\";\n\nimport { clamp } from \"./clamp\";\nimport { wrap } from \"./wrap\";\n\ntype Options = {\n wrap: boolean;\n};\n\nconst defaultOptions: Options = {\n wrap: true,\n};\n\nexport function useIndex(\n initial: number,\n length: number,\n options?: Partial<Options>\n) {\n const { wrap: shouldWrap } = useMemo(() => {\n return {\n ...defaultOptions,\n ...options,\n };\n }, [options]);\n const transform = useMemo(() => (shouldWrap ? wrap : clamp), [shouldWrap]);\n const [index, setIndex] = useState(initial);\n\n useEffect(() => {\n setIndex((index) => clamp(index, 0, Math.max(length - 1, 0)));\n }, [length]);\n\n const previousIndex = useCallback(() => {\n setIndex((index) => transform(index - 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n const nextIndex = useCallback(() => {\n setIndex((index) => transform(index + 1, 0, Math.max(length, 0)));\n }, [length, transform]);\n\n return [index, previousIndex, nextIndex, setIndex] as const;\n}\n"],"names":["index"],"mappings":";;;;AASA,MAAM,cAA0B,GAAA;AAAA,EAC9B,IAAM,EAAA,IAAA;AACR,CAAA,CAAA;AAEgB,SAAA,QAAA,CACd,OACA,EAAA,MAAA,EACA,OACA,EAAA;AACA,EAAA,MAAM,EAAE,IAAA,EAAM,UAAW,EAAA,GAAI,QAAQ,MAAM;AACzC,IAAO,OAAA;AAAA,MACL,GAAG,cAAA;AAAA,MACH,GAAG,OAAA;AAAA,KACL,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AACZ,EAAM,MAAA,SAAA,GAAY,QAAQ,MAAO,UAAA,GAAa,OAAO,KAAQ,EAAA,CAAC,UAAU,CAAC,CAAA,CAAA;AACzE,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,OAAO,CAAA,CAAA;AAE1C,EAAA,SAAA,CAAU,MAAM;AACd,IAAS,QAAA,CAAA,CAACA,MAAU,KAAA,KAAA,CAAMA,MAAO,EAAA,CAAA,EAAG,IAAK,CAAA,GAAA,CAAI,MAAS,GAAA,CAAA,EAAG,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC9D,EAAG,CAAC,MAAM,CAAC,CAAA,CAAA;AAEX,EAAM,MAAA,aAAA,GAAgB,YAAY,MAAM;AACtC,IAAS,QAAA,CAAA,CAACA,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAM,MAAA,SAAA,GAAY,YAAY,MAAM;AAClC,IAAS,QAAA,CAAA,CAACA,MAAU,KAAA,SAAA,CAAUA,MAAQ,GAAA,CAAA,EAAG,CAAG,EAAA,IAAA,CAAK,GAAI,CAAA,MAAA,EAAQ,CAAC,CAAC,CAAC,CAAA,CAAA;AAAA,GAC/D,EAAA,CAAC,MAAQ,EAAA,SAAS,CAAC,CAAA,CAAA;AAEtB,EAAA,OAAO,CAAC,KAAA,EAAO,aAAe,EAAA,SAAA,EAAW,QAAQ,CAAA,CAAA;AACnD;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-initial.
|
|
1
|
+
{"version":3,"file":"use-initial.cjs","sources":["../../src/utils/use-initial.ts"],"sourcesContent":["import { useState } from \"react\";\n\n/**\n * \"Freezes\" a given value, so that it will return the same value/instance on\n * each subsequent render. This can be used to freeze \"initial\" values for\n * custom hooks, much like how `useState(initialState)` or\n * `useRef(initialValue)` works.\n */\nexport function useInitial<T>(value: T | (() => T)): T {\n const [initialValue] = useState(value);\n\n return initialValue;\n}\n"],"names":["useState"],"mappings":";;;;AAQO,SAAS,WAAc,KAAyB,EAAA;AACrD,EAAA,MAAM,CAAC,YAAY,CAAI,GAAAA,cAAA,CAAS,KAAK,CAAA,CAAA;AAErC,EAAO,OAAA,YAAA,CAAA;AACT;;;;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
1
|
+
import { useState } from 'react';
|
|
4
2
|
|
|
5
3
|
function useInitial(value) {
|
|
6
|
-
const [initialValue] =
|
|
4
|
+
const [initialValue] = useState(value);
|
|
7
5
|
return initialValue;
|
|
8
6
|
}
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
export { useInitial };
|
|
11
9
|
//# sourceMappingURL=use-initial.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-initial.js","sources":["../../src/utils/use-initial.ts"],"sourcesContent":["import { useState } from \"react\";\n\n/**\n * \"Freezes\" a given value, so that it will return the same value/instance on\n * each subsequent render. This can be used to freeze \"initial\" values for\n * custom hooks, much like how `useState(initialState)` or\n * `useRef(initialValue)` works.\n */\nexport function useInitial<T>(value: T | (() => T)): T {\n const [initialValue] = useState(value);\n\n return initialValue;\n}\n"],"names":[
|
|
1
|
+
{"version":3,"file":"use-initial.js","sources":["../../src/utils/use-initial.ts"],"sourcesContent":["import { useState } from \"react\";\n\n/**\n * \"Freezes\" a given value, so that it will return the same value/instance on\n * each subsequent render. This can be used to freeze \"initial\" values for\n * custom hooks, much like how `useState(initialState)` or\n * `useRef(initialValue)` works.\n */\nexport function useInitial<T>(value: T | (() => T)): T {\n const [initialValue] = useState(value);\n\n return initialValue;\n}\n"],"names":[],"mappings":";;AAQO,SAAS,WAAc,KAAyB,EAAA;AACrD,EAAA,MAAM,CAAC,YAAY,CAAI,GAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AAErC,EAAO,OAAA,YAAA,CAAA;AACT;;;;"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
2
4
|
|
|
3
5
|
function useInterval(callback, delay) {
|
|
4
|
-
const latestCallback = useRef(callback);
|
|
5
|
-
useEffect(() => {
|
|
6
|
+
const latestCallback = react.useRef(callback);
|
|
7
|
+
react.useEffect(() => {
|
|
6
8
|
latestCallback.current = callback;
|
|
7
9
|
}, [callback]);
|
|
8
|
-
useEffect(() => {
|
|
10
|
+
react.useEffect(() => {
|
|
9
11
|
if (!delay && delay !== 0) {
|
|
10
12
|
return;
|
|
11
13
|
}
|
|
@@ -18,5 +20,5 @@ function useInterval(callback, delay) {
|
|
|
18
20
|
}, [delay]);
|
|
19
21
|
}
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=use-interval.
|
|
23
|
+
exports.useInterval = useInterval;
|
|
24
|
+
//# sourceMappingURL=use-interval.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-interval.cjs","sources":["../../src/utils/use-interval.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\n/**\n * Run a function at a given time interval.\n */\nexport function useInterval(\n callback: () => void | false,\n delay?: number | false\n) {\n const latestCallback = useRef(callback);\n\n useEffect(() => {\n latestCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (!delay && delay !== 0) {\n return;\n }\n\n const id = setInterval(() => {\n if (latestCallback.current() === false) {\n clearInterval(id);\n }\n }, delay);\n\n return () => clearInterval(id);\n }, [delay]);\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;AAKgB,SAAA,WAAA,CACd,UACA,KACA,EAAA;AACA,EAAM,MAAA,cAAA,GAAiBA,aAAO,QAAQ,CAAA,CAAA;AAEtC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,cAAA,CAAe,OAAU,GAAA,QAAA,CAAA;AAAA,GAC3B,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAAA,eAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,KAAS,IAAA,KAAA,KAAU,CAAG,EAAA;AACzB,MAAA,OAAA;AAAA,KACF;AAEA,IAAM,MAAA,EAAA,GAAK,YAAY,MAAM;AAC3B,MAAI,IAAA,cAAA,CAAe,OAAQ,EAAA,KAAM,KAAO,EAAA;AACtC,QAAA,aAAA,CAAc,EAAE,CAAA,CAAA;AAAA,OAClB;AAAA,OACC,KAAK,CAAA,CAAA;AAER,IAAO,OAAA,MAAM,cAAc,EAAE,CAAA,CAAA;AAAA,GAC/B,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AACZ;;;;"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
1
|
+
import { useRef, useEffect } from 'react';
|
|
4
2
|
|
|
5
3
|
function useInterval(callback, delay) {
|
|
6
|
-
const latestCallback =
|
|
7
|
-
|
|
4
|
+
const latestCallback = useRef(callback);
|
|
5
|
+
useEffect(() => {
|
|
8
6
|
latestCallback.current = callback;
|
|
9
7
|
}, [callback]);
|
|
10
|
-
|
|
8
|
+
useEffect(() => {
|
|
11
9
|
if (!delay && delay !== 0) {
|
|
12
10
|
return;
|
|
13
11
|
}
|
|
@@ -20,5 +18,5 @@ function useInterval(callback, delay) {
|
|
|
20
18
|
}, [delay]);
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
export { useInterval };
|
|
24
22
|
//# sourceMappingURL=use-interval.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-interval.js","sources":["../../src/utils/use-interval.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\n/**\n * Run a function at a given time interval.\n */\nexport function useInterval(\n callback: () => void | false,\n delay?: number | false\n) {\n const latestCallback = useRef(callback);\n\n useEffect(() => {\n latestCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (!delay && delay !== 0) {\n return;\n }\n\n const id = setInterval(() => {\n if (latestCallback.current() === false) {\n clearInterval(id);\n }\n }, delay);\n\n return () => clearInterval(id);\n }, [delay]);\n}\n"],"names":[
|
|
1
|
+
{"version":3,"file":"use-interval.js","sources":["../../src/utils/use-interval.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\n/**\n * Run a function at a given time interval.\n */\nexport function useInterval(\n callback: () => void | false,\n delay?: number | false\n) {\n const latestCallback = useRef(callback);\n\n useEffect(() => {\n latestCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (!delay && delay !== 0) {\n return;\n }\n\n const id = setInterval(() => {\n if (latestCallback.current() === false) {\n clearInterval(id);\n }\n }, delay);\n\n return () => clearInterval(id);\n }, [delay]);\n}\n"],"names":[],"mappings":";;AAKgB,SAAA,WAAA,CACd,UACA,KACA,EAAA;AACA,EAAM,MAAA,cAAA,GAAiB,OAAO,QAAQ,CAAA,CAAA;AAEtC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,cAAA,CAAe,OAAU,GAAA,QAAA,CAAA;AAAA,GAC3B,EAAG,CAAC,QAAQ,CAAC,CAAA,CAAA;AAEb,EAAA,SAAA,CAAU,MAAM;AACd,IAAI,IAAA,CAAC,KAAS,IAAA,KAAA,KAAU,CAAG,EAAA;AACzB,MAAA,OAAA;AAAA,KACF;AAEA,IAAM,MAAA,EAAA,GAAK,YAAY,MAAM;AAC3B,MAAI,IAAA,cAAA,CAAe,OAAQ,EAAA,KAAM,KAAO,EAAA;AACtC,QAAA,aAAA,CAAc,EAAE,CAAA,CAAA;AAAA,OAClB;AAAA,OACC,KAAK,CAAA,CAAA;AAER,IAAO,OAAA,MAAM,cAAc,EAAE,CAAA,CAAA;AAAA,GAC/B,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AACZ;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
|
|
5
|
+
function useLatest(value) {
|
|
6
|
+
const ref = react.useRef(value);
|
|
7
|
+
react.useEffect(() => {
|
|
8
|
+
ref.current = value;
|
|
9
|
+
}, [value]);
|
|
10
|
+
return ref;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
exports.useLatest = useLatest;
|
|
14
|
+
//# sourceMappingURL=use-latest.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-latest.
|
|
1
|
+
{"version":3,"file":"use-latest.cjs","sources":["../../src/utils/use-latest.ts"],"sourcesContent":["import type { MutableRefObject } from \"react\";\nimport { useEffect, useRef } from \"react\";\n\n/**\n * Keeps a ref in sync with a given value that may or may not change on\n * every render.\n *\n * The purpose of this hook is to return a stable ref that can be passed\n * to a callback function so the callback can be registered but still can\n * access the latest value at a later point in time.\n */\nexport function useLatest<T>(value: T): MutableRefObject<T> {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n}\n"],"names":["useRef","useEffect"],"mappings":";;;;AAWO,SAAS,UAAa,KAA+B,EAAA;AAC1D,EAAM,MAAA,GAAA,GAAMA,aAAO,KAAK,CAAA,CAAA;AACxB,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,GAAA,CAAI,OAAU,GAAA,KAAA,CAAA;AAAA,GAChB,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AACV,EAAO,OAAA,GAAA,CAAA;AACT;;;;"}
|
package/dist/utils/use-latest.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
1
|
+
import { useRef, useEffect } from 'react';
|
|
4
2
|
|
|
5
3
|
function useLatest(value) {
|
|
6
|
-
const ref =
|
|
7
|
-
|
|
4
|
+
const ref = useRef(value);
|
|
5
|
+
useEffect(() => {
|
|
8
6
|
ref.current = value;
|
|
9
7
|
}, [value]);
|
|
10
8
|
return ref;
|
|
11
9
|
}
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
export { useLatest };
|
|
14
12
|
//# sourceMappingURL=use-latest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-latest.js","sources":["../../src/utils/use-latest.ts"],"sourcesContent":["import type { MutableRefObject } from \"react\";\nimport { useEffect, useRef } from \"react\";\n\n/**\n * Keeps a ref in sync with a given value that may or may not change on\n * every render.\n *\n * The purpose of this hook is to return a stable ref that can be passed\n * to a callback function so the callback can be registered but still can\n * access the latest value at a later point in time.\n */\nexport function useLatest<T>(value: T): MutableRefObject<T> {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n}\n"],"names":[
|
|
1
|
+
{"version":3,"file":"use-latest.js","sources":["../../src/utils/use-latest.ts"],"sourcesContent":["import type { MutableRefObject } from \"react\";\nimport { useEffect, useRef } from \"react\";\n\n/**\n * Keeps a ref in sync with a given value that may or may not change on\n * every render.\n *\n * The purpose of this hook is to return a stable ref that can be passed\n * to a callback function so the callback can be registered but still can\n * access the latest value at a later point in time.\n */\nexport function useLatest<T>(value: T): MutableRefObject<T> {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n}\n"],"names":[],"mappings":";;AAWO,SAAS,UAAa,KAA+B,EAAA;AAC1D,EAAM,MAAA,GAAA,GAAM,OAAO,KAAK,CAAA,CAAA;AACxB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,GAAA,CAAI,OAAU,GAAA,KAAA,CAAA;AAAA,GAChB,EAAG,CAAC,KAAK,CAAC,CAAA,CAAA;AACV,EAAO,OAAA,GAAA,CAAA;AACT;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var useLatest = require('./use-latest.cjs');
|
|
5
|
+
|
|
6
|
+
function useObservable(observable, callback) {
|
|
7
|
+
const latestCallback = useLatest.useLatest(callback);
|
|
8
|
+
react.useEffect(() => {
|
|
9
|
+
const unsubscribe = observable.subscribe(() => latestCallback.current());
|
|
10
|
+
return unsubscribe;
|
|
11
|
+
}, [observable, latestCallback]);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.useObservable = useObservable;
|
|
15
|
+
//# sourceMappingURL=use-observable.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-observable.
|
|
1
|
+
{"version":3,"file":"use-observable.cjs","sources":["../../src/utils/use-observable.ts"],"sourcesContent":["import type { Observable } from \"@liveblocks/core\";\nimport { useEffect } from \"react\";\n\nimport { useLatest } from \"./use-latest\";\n\nexport function useObservable<T>(\n observable: Observable<T>,\n callback: () => void\n) {\n const latestCallback = useLatest(callback);\n\n useEffect(() => {\n const unsubscribe = observable.subscribe(() => latestCallback.current());\n\n return unsubscribe;\n }, [observable, latestCallback]);\n}\n"],"names":["useLatest","useEffect"],"mappings":";;;;;AAKgB,SAAA,aAAA,CACd,YACA,QACA,EAAA;AACA,EAAM,MAAA,cAAA,GAAiBA,oBAAU,QAAQ,CAAA,CAAA;AAEzC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,cAAc,UAAW,CAAA,SAAA,CAAU,MAAM,cAAA,CAAe,SAAS,CAAA,CAAA;AAEvE,IAAO,OAAA,WAAA,CAAA;AAAA,GACN,EAAA,CAAC,UAAY,EAAA,cAAc,CAAC,CAAA,CAAA;AACjC;;;;"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
4
|
-
var useLatest = require('./use-latest.js');
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { useLatest } from './use-latest.js';
|
|
5
3
|
|
|
6
4
|
function useObservable(observable, callback) {
|
|
7
|
-
const latestCallback = useLatest
|
|
8
|
-
|
|
5
|
+
const latestCallback = useLatest(callback);
|
|
6
|
+
useEffect(() => {
|
|
9
7
|
const unsubscribe = observable.subscribe(() => latestCallback.current());
|
|
10
8
|
return unsubscribe;
|
|
11
9
|
}, [observable, latestCallback]);
|
|
12
10
|
}
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
export { useObservable };
|
|
15
13
|
//# sourceMappingURL=use-observable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-observable.js","sources":["../../src/utils/use-observable.ts"],"sourcesContent":["import type { Observable } from \"@liveblocks/core\";\nimport { useEffect } from \"react\";\n\nimport { useLatest } from \"./use-latest\";\n\nexport function useObservable<T>(\n observable: Observable<T>,\n callback: () => void\n) {\n const latestCallback = useLatest(callback);\n\n useEffect(() => {\n const unsubscribe = observable.subscribe(() => latestCallback.current());\n\n return unsubscribe;\n }, [observable, latestCallback]);\n}\n"],"names":[
|
|
1
|
+
{"version":3,"file":"use-observable.js","sources":["../../src/utils/use-observable.ts"],"sourcesContent":["import type { Observable } from \"@liveblocks/core\";\nimport { useEffect } from \"react\";\n\nimport { useLatest } from \"./use-latest\";\n\nexport function useObservable<T>(\n observable: Observable<T>,\n callback: () => void\n) {\n const latestCallback = useLatest(callback);\n\n useEffect(() => {\n const unsubscribe = observable.subscribe(() => latestCallback.current());\n\n return unsubscribe;\n }, [observable, latestCallback]);\n}\n"],"names":[],"mappings":";;;AAKgB,SAAA,aAAA,CACd,YACA,QACA,EAAA;AACA,EAAM,MAAA,cAAA,GAAiB,UAAU,QAAQ,CAAA,CAAA;AAEzC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,cAAc,UAAW,CAAA,SAAA,CAAU,MAAM,cAAA,CAAe,SAAS,CAAA,CAAA;AAEvE,IAAO,OAAA,WAAA,CAAA;AAAA,GACN,EAAA,CAAC,UAAY,EAAA,cAAc,CAAC,CAAA,CAAA;AACjC;;;;"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
2
4
|
|
|
3
5
|
function applyRef(ref, value) {
|
|
4
6
|
if (value) {
|
|
@@ -15,8 +17,8 @@ function mergeRefs(value, ...refs) {
|
|
|
15
17
|
}
|
|
16
18
|
}
|
|
17
19
|
function useRefs(...refs) {
|
|
18
|
-
return useCallback((value) => mergeRefs(value, ...refs), refs);
|
|
20
|
+
return react.useCallback((value) => mergeRefs(value, ...refs), refs);
|
|
19
21
|
}
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
//# sourceMappingURL=use-refs.
|
|
23
|
+
exports.useRefs = useRefs;
|
|
24
|
+
//# sourceMappingURL=use-refs.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-refs.
|
|
1
|
+
{"version":3,"file":"use-refs.cjs","sources":["../../src/utils/use-refs.ts"],"sourcesContent":["import type { MutableRefObject, Ref, RefCallback } from \"react\";\nimport { useCallback } from \"react\";\n\nfunction applyRef<T>(ref: Ref<T>, value: T) {\n if (value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref && \"current\" in ref) {\n (ref as MutableRefObject<T>).current = value;\n }\n }\n}\n\nfunction mergeRefs<T>(value: T, ...refs: Ref<T>[]) {\n for (const ref of refs) {\n applyRef(ref, value);\n }\n}\n\nexport function useRefs<T>(...refs: Ref<T>[]): RefCallback<T> {\n // We want to compare the individual refs themselves, not the surrounding array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback((value: T) => mergeRefs(value, ...refs), refs);\n}\n"],"names":["useCallback"],"mappings":";;;;AAGA,SAAS,QAAA,CAAY,KAAa,KAAU,EAAA;AAC1C,EAAA,IAAI,KAAO,EAAA;AACT,IAAI,IAAA,OAAO,QAAQ,UAAY,EAAA;AAC7B,MAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAAA,KACX,MAAA,IAAW,GAAO,IAAA,SAAA,IAAa,GAAK,EAAA;AAClC,MAAC,IAA4B,OAAU,GAAA,KAAA,CAAA;AAAA,KACzC;AAAA,GACF;AACF,CAAA;AAEA,SAAS,SAAA,CAAa,UAAa,IAAgB,EAAA;AACjD,EAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,IAAA,QAAA,CAAS,KAAK,KAAK,CAAA,CAAA;AAAA,GACrB;AACF,CAAA;AAEO,SAAS,WAAc,IAAgC,EAAA;AAG5D,EAAO,OAAAA,iBAAA,CAAY,CAAC,KAAa,KAAA,SAAA,CAAU,OAAO,GAAG,IAAI,GAAG,IAAI,CAAA,CAAA;AAClE;;;;"}
|
package/dist/utils/use-refs.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
1
|
+
import { useCallback } from 'react';
|
|
4
2
|
|
|
5
3
|
function applyRef(ref, value) {
|
|
6
4
|
if (value) {
|
|
@@ -17,8 +15,8 @@ function mergeRefs(value, ...refs) {
|
|
|
17
15
|
}
|
|
18
16
|
}
|
|
19
17
|
function useRefs(...refs) {
|
|
20
|
-
return
|
|
18
|
+
return useCallback((value) => mergeRefs(value, ...refs), refs);
|
|
21
19
|
}
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
export { useRefs };
|
|
24
22
|
//# sourceMappingURL=use-refs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-refs.js","sources":["../../src/utils/use-refs.ts"],"sourcesContent":["import type { MutableRefObject, Ref, RefCallback } from \"react\";\nimport { useCallback } from \"react\";\n\nfunction applyRef<T>(ref: Ref<T>, value: T) {\n if (value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref && \"current\" in ref) {\n (ref as MutableRefObject<T>).current = value;\n }\n }\n}\n\nfunction mergeRefs<T>(value: T, ...refs: Ref<T>[]) {\n for (const ref of refs) {\n applyRef(ref, value);\n }\n}\n\nexport function useRefs<T>(...refs: Ref<T>[]): RefCallback<T> {\n // We want to compare the individual refs themselves, not the surrounding array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback((value: T) => mergeRefs(value, ...refs), refs);\n}\n"],"names":[
|
|
1
|
+
{"version":3,"file":"use-refs.js","sources":["../../src/utils/use-refs.ts"],"sourcesContent":["import type { MutableRefObject, Ref, RefCallback } from \"react\";\nimport { useCallback } from \"react\";\n\nfunction applyRef<T>(ref: Ref<T>, value: T) {\n if (value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref && \"current\" in ref) {\n (ref as MutableRefObject<T>).current = value;\n }\n }\n}\n\nfunction mergeRefs<T>(value: T, ...refs: Ref<T>[]) {\n for (const ref of refs) {\n applyRef(ref, value);\n }\n}\n\nexport function useRefs<T>(...refs: Ref<T>[]): RefCallback<T> {\n // We want to compare the individual refs themselves, not the surrounding array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useCallback((value: T) => mergeRefs(value, ...refs), refs);\n}\n"],"names":[],"mappings":";;AAGA,SAAS,QAAA,CAAY,KAAa,KAAU,EAAA;AAC1C,EAAA,IAAI,KAAO,EAAA;AACT,IAAI,IAAA,OAAO,QAAQ,UAAY,EAAA;AAC7B,MAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAAA,KACX,MAAA,IAAW,GAAO,IAAA,SAAA,IAAa,GAAK,EAAA;AAClC,MAAC,IAA4B,OAAU,GAAA,KAAA,CAAA;AAAA,KACzC;AAAA,GACF;AACF,CAAA;AAEA,SAAS,SAAA,CAAa,UAAa,IAAgB,EAAA;AACjD,EAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,IAAA,QAAA,CAAS,KAAK,KAAK,CAAA,CAAA;AAAA,GACrB;AACF,CAAA;AAEO,SAAS,WAAc,IAAgC,EAAA;AAG5D,EAAO,OAAA,WAAA,CAAY,CAAC,KAAa,KAAA,SAAA,CAAU,OAAO,GAAG,IAAI,GAAG,IAAI,CAAA,CAAA;AAClE;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
|
|
5
|
+
function useRerender() {
|
|
6
|
+
const [key, update] = react.useReducer(
|
|
7
|
+
(key2) => key2 + 1,
|
|
8
|
+
0
|
|
9
|
+
);
|
|
10
|
+
return [update, key];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
exports.useRerender = useRerender;
|
|
14
|
+
//# sourceMappingURL=use-rerender.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-rerender.
|
|
1
|
+
{"version":3,"file":"use-rerender.cjs","sources":["../../src/utils/use-rerender.ts"],"sourcesContent":["import { useReducer } from \"react\";\n\n/**\n * Trigger a re-render programmatically, without changing the component's\n * state.\n *\n * @example\n * const rerender = useRerender();\n *\n * return (\n * <button onClick={rerender}>\n * {Math.random()}\n * </button>\n * )\n */\nexport function useRerender(): [() => void, number] {\n const [key, update] = useReducer(\n // This implementation works by incrementing a hidden counter value that is\n // never consumed. Simply incrementing the counter changes the component's\n // state and, thus, trigger a re-render.\n (key: number): number => key + 1,\n 0\n );\n return [update, key];\n}\n"],"names":["useReducer","key"],"mappings":";;;;AAeO,SAAS,WAAoC,GAAA;AAClD,EAAM,MAAA,CAAC,GAAK,EAAA,MAAM,CAAI,GAAAA,gBAAA;AAAA,IAIpB,CAACC,SAAwBA,IAAM,GAAA,CAAA;AAAA,IAC/B,CAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,CAAC,QAAQ,GAAG,CAAA,CAAA;AACrB;;;;"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
1
|
+
import { useReducer } from 'react';
|
|
4
2
|
|
|
5
3
|
function useRerender() {
|
|
6
|
-
const [key, update] =
|
|
4
|
+
const [key, update] = useReducer(
|
|
7
5
|
(key2) => key2 + 1,
|
|
8
6
|
0
|
|
9
7
|
);
|
|
10
8
|
return [update, key];
|
|
11
9
|
}
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
export { useRerender };
|
|
14
12
|
//# sourceMappingURL=use-rerender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-rerender.js","sources":["../../src/utils/use-rerender.ts"],"sourcesContent":["import { useReducer } from \"react\";\n\n/**\n * Trigger a re-render programmatically, without changing the component's\n * state.\n *\n * @example\n * const rerender = useRerender();\n *\n * return (\n * <button onClick={rerender}>\n * {Math.random()}\n * </button>\n * )\n */\nexport function useRerender(): [() => void, number] {\n const [key, update] = useReducer(\n // This implementation works by incrementing a hidden counter value that is\n // never consumed. Simply incrementing the counter changes the component's\n // state and, thus, trigger a re-render.\n (key: number): number => key + 1,\n 0\n );\n return [update, key];\n}\n"],"names":["
|
|
1
|
+
{"version":3,"file":"use-rerender.js","sources":["../../src/utils/use-rerender.ts"],"sourcesContent":["import { useReducer } from \"react\";\n\n/**\n * Trigger a re-render programmatically, without changing the component's\n * state.\n *\n * @example\n * const rerender = useRerender();\n *\n * return (\n * <button onClick={rerender}>\n * {Math.random()}\n * </button>\n * )\n */\nexport function useRerender(): [() => void, number] {\n const [key, update] = useReducer(\n // This implementation works by incrementing a hidden counter value that is\n // never consumed. Simply incrementing the counter changes the component's\n // state and, thus, trigger a re-render.\n (key: number): number => key + 1,\n 0\n );\n return [update, key];\n}\n"],"names":["key"],"mappings":";;AAeO,SAAS,WAAoC,GAAA;AAClD,EAAM,MAAA,CAAC,GAAK,EAAA,MAAM,CAAI,GAAA,UAAA;AAAA,IAIpB,CAACA,SAAwBA,IAAM,GAAA,CAAA;AAAA,IAC/B,CAAA;AAAA,GACF,CAAA;AACA,EAAO,OAAA,CAAC,QAAQ,GAAG,CAAA,CAAA;AACrB;;;;"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var useLatest = require('./use-latest.cjs');
|
|
3
5
|
|
|
4
6
|
let intersectionObserver;
|
|
5
7
|
const intersectionCallbacks = /* @__PURE__ */ new WeakMap();
|
|
@@ -20,9 +22,9 @@ function unobserve(element) {
|
|
|
20
22
|
intersectionObserver?.unobserve(element);
|
|
21
23
|
}
|
|
22
24
|
function useVisible(ref, options) {
|
|
23
|
-
const [isVisible, setVisible] = useState(false);
|
|
25
|
+
const [isVisible, setVisible] = react.useState(false);
|
|
24
26
|
const enabled = options?.enabled ?? true;
|
|
25
|
-
useEffect(() => {
|
|
27
|
+
react.useEffect(() => {
|
|
26
28
|
const element = ref.current;
|
|
27
29
|
if (!element) {
|
|
28
30
|
return;
|
|
@@ -42,8 +44,8 @@ function useVisible(ref, options) {
|
|
|
42
44
|
}
|
|
43
45
|
function useVisibleCallback(ref, callback, options) {
|
|
44
46
|
const enabled = options?.enabled ?? true;
|
|
45
|
-
const latestCallback = useLatest(callback);
|
|
46
|
-
useEffect(() => {
|
|
47
|
+
const latestCallback = useLatest.useLatest(callback);
|
|
48
|
+
react.useEffect(() => {
|
|
47
49
|
const element = ref.current;
|
|
48
50
|
if (!element) {
|
|
49
51
|
return;
|
|
@@ -63,5 +65,6 @@ function useVisibleCallback(ref, callback, options) {
|
|
|
63
65
|
}, [enabled]);
|
|
64
66
|
}
|
|
65
67
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
+
exports.useVisible = useVisible;
|
|
69
|
+
exports.useVisibleCallback = useVisibleCallback;
|
|
70
|
+
//# sourceMappingURL=use-visible.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-visible.
|
|
1
|
+
{"version":3,"file":"use-visible.cjs","sources":["../../src/utils/use-visible.ts"],"sourcesContent":["import { type RefObject, useEffect, useState } from \"react\";\n\nimport { useLatest } from \"./use-latest\";\n\ntype Options = { enabled?: boolean };\n\ntype IntersectionObserverSingleCallback = (\n entry: IntersectionObserverEntry\n) => void;\n\nlet intersectionObserver: IntersectionObserver | undefined;\nconst intersectionCallbacks = new WeakMap<\n Element,\n IntersectionObserverSingleCallback\n>();\n\nfunction observe(\n element: Element,\n callback: IntersectionObserverSingleCallback\n) {\n if (!intersectionObserver) {\n intersectionObserver = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback = intersectionCallbacks.get(entry.target);\n\n callback?.(entry);\n }\n });\n }\n\n intersectionCallbacks.set(element, callback);\n intersectionObserver.observe(element);\n}\n\nfunction unobserve(element: Element) {\n intersectionCallbacks.delete(element);\n intersectionObserver?.unobserve(element);\n}\n\n/**\n * Observe whether an element is currently visible or not.\n */\nexport function useVisible(ref: RefObject<Element>, options?: Options) {\n const [isVisible, setVisible] = useState(false);\n const enabled = options?.enabled ?? true;\n\n useEffect(() => {\n const element = ref.current;\n\n if (!element) {\n return;\n }\n\n if (enabled) {\n observe(element, (entry) => {\n setVisible(entry.isIntersecting);\n });\n } else {\n unobserve(element);\n }\n\n return () => {\n unobserve(element);\n };\n }, [enabled]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return isVisible;\n}\n\nexport function useVisibleCallback<T extends (...args: any[]) => void>(\n ref: RefObject<Element>,\n callback: T,\n options?: Options\n) {\n const enabled = options?.enabled ?? true;\n const latestCallback = useLatest(callback);\n\n useEffect(() => {\n const element = ref.current;\n\n if (!element) {\n return;\n }\n\n if (enabled) {\n observe(element, (entry) => {\n if (entry.isIntersecting) {\n latestCallback.current();\n }\n });\n } else {\n unobserve(element);\n }\n\n return () => {\n unobserve(element);\n };\n }, [enabled]); // eslint-disable-line react-hooks/exhaustive-deps\n}\n"],"names":["callback","useState","useEffect","useLatest"],"mappings":";;;;;AAUA,IAAI,oBAAA,CAAA;AACJ,MAAM,qBAAA,uBAA4B,OAGhC,EAAA,CAAA;AAEF,SAAS,OAAA,CACP,SACA,QACA,EAAA;AACA,EAAA,IAAI,CAAC,oBAAsB,EAAA;AACzB,IAAuB,oBAAA,GAAA,IAAI,oBAAqB,CAAA,CAAC,OAAY,KAAA;AAC3D,MAAA,KAAA,MAAW,SAAS,OAAS,EAAA;AAC3B,QAAA,MAAMA,SAAW,GAAA,qBAAA,CAAsB,GAAI,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEvD,QAAAA,YAAW,KAAK,CAAA,CAAA;AAAA,OAClB;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAEA,EAAsB,qBAAA,CAAA,GAAA,CAAI,SAAS,QAAQ,CAAA,CAAA;AAC3C,EAAA,oBAAA,CAAqB,QAAQ,OAAO,CAAA,CAAA;AACtC,CAAA;AAEA,SAAS,UAAU,OAAkB,EAAA;AACnC,EAAA,qBAAA,CAAsB,OAAO,OAAO,CAAA,CAAA;AACpC,EAAA,oBAAA,EAAsB,UAAU,OAAO,CAAA,CAAA;AACzC,CAAA;AAKgB,SAAA,UAAA,CAAW,KAAyB,OAAmB,EAAA;AACrE,EAAA,MAAM,CAAC,SAAA,EAAW,UAAU,CAAA,GAAIC,eAAS,KAAK,CAAA,CAAA;AAC9C,EAAM,MAAA,OAAA,GAAU,SAAS,OAAW,IAAA,IAAA,CAAA;AAEpC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAU,GAAI,CAAA,OAAA,CAAA;AAEpB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,IAAI,OAAS,EAAA;AACX,MAAQ,OAAA,CAAA,OAAA,EAAS,CAAC,KAAU,KAAA;AAC1B,QAAA,UAAA,CAAW,MAAM,cAAc,CAAA,CAAA;AAAA,OAChC,CAAA,CAAA;AAAA,KACI,MAAA;AACL,MAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAAA,KACnB;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAAA,KACnB,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AAEZ,EAAO,OAAA,SAAA,CAAA;AACT,CAAA;AAEgB,SAAA,kBAAA,CACd,GACA,EAAA,QAAA,EACA,OACA,EAAA;AACA,EAAM,MAAA,OAAA,GAAU,SAAS,OAAW,IAAA,IAAA,CAAA;AACpC,EAAM,MAAA,cAAA,GAAiBC,oBAAU,QAAQ,CAAA,CAAA;AAEzC,EAAAD,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,UAAU,GAAI,CAAA,OAAA,CAAA;AAEpB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,IAAI,OAAS,EAAA;AACX,MAAQ,OAAA,CAAA,OAAA,EAAS,CAAC,KAAU,KAAA;AAC1B,QAAA,IAAI,MAAM,cAAgB,EAAA;AACxB,UAAA,cAAA,CAAe,OAAQ,EAAA,CAAA;AAAA,SACzB;AAAA,OACD,CAAA,CAAA;AAAA,KACI,MAAA;AACL,MAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAAA,KACnB;AAEA,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,CAAU,OAAO,CAAA,CAAA;AAAA,KACnB,CAAA;AAAA,GACF,EAAG,CAAC,OAAO,CAAC,CAAA,CAAA;AACd;;;;;"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var react = require('react');
|
|
4
|
-
var useLatest = require('./use-latest.js');
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
import { useLatest } from './use-latest.js';
|
|
5
3
|
|
|
6
4
|
let intersectionObserver;
|
|
7
5
|
const intersectionCallbacks = /* @__PURE__ */ new WeakMap();
|
|
@@ -22,9 +20,9 @@ function unobserve(element) {
|
|
|
22
20
|
intersectionObserver?.unobserve(element);
|
|
23
21
|
}
|
|
24
22
|
function useVisible(ref, options) {
|
|
25
|
-
const [isVisible, setVisible] =
|
|
23
|
+
const [isVisible, setVisible] = useState(false);
|
|
26
24
|
const enabled = options?.enabled ?? true;
|
|
27
|
-
|
|
25
|
+
useEffect(() => {
|
|
28
26
|
const element = ref.current;
|
|
29
27
|
if (!element) {
|
|
30
28
|
return;
|
|
@@ -44,8 +42,8 @@ function useVisible(ref, options) {
|
|
|
44
42
|
}
|
|
45
43
|
function useVisibleCallback(ref, callback, options) {
|
|
46
44
|
const enabled = options?.enabled ?? true;
|
|
47
|
-
const latestCallback = useLatest
|
|
48
|
-
|
|
45
|
+
const latestCallback = useLatest(callback);
|
|
46
|
+
useEffect(() => {
|
|
49
47
|
const element = ref.current;
|
|
50
48
|
if (!element) {
|
|
51
49
|
return;
|
|
@@ -65,6 +63,5 @@ function useVisibleCallback(ref, callback, options) {
|
|
|
65
63
|
}, [enabled]);
|
|
66
64
|
}
|
|
67
65
|
|
|
68
|
-
|
|
69
|
-
exports.useVisibleCallback = useVisibleCallback;
|
|
66
|
+
export { useVisible, useVisibleCallback };
|
|
70
67
|
//# sourceMappingURL=use-visible.js.map
|