├── .gitignore ├── default.project.json ├── docs ├── intro.md └── Installation.md ├── src ├── HookConnection.lua ├── createUseFlipper.lua ├── createUsePortal.lua ├── copy.lua ├── createUseDispatch.lua ├── createUseSelector.lua ├── getRbxtsSource.lua ├── createUseStore.lua ├── Hooks │ ├── useRendersSpy.lua │ ├── useForceUpdate.lua │ ├── usePrevious.lua │ ├── useToggle.lua │ ├── useUpdateEffect.lua │ ├── useFlipper.lua │ ├── useMaid.lua │ ├── useQueue.lua │ ├── useDispatch.lua │ ├── useStore.lua │ ├── useLatest.lua │ ├── useDebouncedText.lua │ ├── useReactiveState.lua │ ├── useAsync.lua │ ├── useSelector.lua │ ├── useEvent.lua │ ├── useTimeout.lua │ ├── useTween.lua │ ├── useCounter.lua │ ├── useDebounce.lua │ ├── useArray.lua │ ├── useUndo.lua │ └── usePortal.lua ├── ts.lua ├── merge.lua ├── Symbol.lua ├── Library │ ├── Maid.lua │ ├── Roselect.lua │ └── Promise.lua ├── init.lua └── createSource.lua ├── wally.toml ├── README.md ├── typings ├── usePrevious.d.ts ├── useRendersSpy.d.ts ├── useForceUpdate.d.ts ├── useDebouncedText.d.ts ├── useReactiveState.d.ts ├── useMaid.d.ts ├── useToggle.d.ts ├── useQueue.d.ts ├── useAsync.d.ts ├── useDispatch.d.ts ├── useFlipper.d.ts ├── useLatest.d.ts ├── useStore.d.ts ├── useCounter.d.ts ├── useSelector.d.ts ├── useUpdateEffect.d.ts ├── useArray.d.ts ├── useTween.d.ts ├── useUndo.d.ts ├── usePortal.d.ts ├── useTimeout.d.ts ├── useDebounce.d.ts ├── index.d.ts └── useEvent.ts ├── aftman.toml ├── moonwave.toml ├── tsconfig.json ├── .moonwave └── custom.css ├── package.json └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .vscode 3 | test.tsx 4 | build 5 | model.rbxm -------------------------------------------------------------------------------- /default.project.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "hook-bag", 3 | "tree": { 4 | "$path": "src" 5 | } 6 | } -------------------------------------------------------------------------------- /docs/intro.md: -------------------------------------------------------------------------------- 1 | --- 2 | sidebar_position: 1 3 | --- 4 | 5 | # Table of Contents 6 | 7 | - [Installation](/docs/Installation) 8 | - [API Reference](/api/Hooks) -------------------------------------------------------------------------------- /src/HookConnection.lua: -------------------------------------------------------------------------------- 1 | local Symbol = require(script.Parent.Symbol) 2 | 3 | local HookConnection = Symbol.named("HookConnection") 4 | 5 | return HookConnection -------------------------------------------------------------------------------- /wally.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rimuy/hook-bag" 3 | version = "0.1.0" 4 | license = "MPL-2.0" 5 | authors = ["Rimuy"] 6 | registry = "https://github.com/UpliftGames/wally-index" 7 | realm = "shared" -------------------------------------------------------------------------------- /src/createUseFlipper.lua: -------------------------------------------------------------------------------- 1 | local useFlipper = require(script.Parent.Hooks.useFlipper) 2 | 3 | local function createUseFlipper(flipper) 4 | return useFlipper(require(flipper)) 5 | end 6 | 7 | return createUseFlipper -------------------------------------------------------------------------------- /src/createUsePortal.lua: -------------------------------------------------------------------------------- 1 | local usePortal = require(script.Parent.Hooks.usePortal) 2 | 3 | local function createUsePortal(roactSource) 4 | return usePortal(require(roactSource)) 5 | end 6 | 7 | return createUsePortal -------------------------------------------------------------------------------- /src/copy.lua: -------------------------------------------------------------------------------- 1 | local function copy(tbl) 2 | local newTbl = {} 3 | for k, v in pairs(tbl) do 4 | newTbl[k] = v 5 | end 6 | 7 | return newTbl 8 | end 9 | 10 | return copy -------------------------------------------------------------------------------- /src/createUseDispatch.lua: -------------------------------------------------------------------------------- 1 | local useDispatch = require(script.Parent.Hooks.useDispatch) 2 | 3 | local function createUseDispatch(useStore, useSelector) 4 | return useDispatch(useStore, useSelector) 5 | end 6 | 7 | return createUseDispatch -------------------------------------------------------------------------------- /src/createUseSelector.lua: -------------------------------------------------------------------------------- 1 | local useSelector = require(script.Parent.Hooks.useSelector) 2 | 3 | local function createUseDispatch(roselect, useStore) 4 | return useSelector(require(roselect), useStore) 5 | end 6 | 7 | return createUseDispatch -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
6 | -------------------------------------------------------------------------------- /typings/usePrevious.d.ts: -------------------------------------------------------------------------------- 1 | import { HookCreator } from "./"; 2 | 3 | /** 4 | * Simply returns the previous state. 5 | * @param value The state. 6 | */ 7 | declare function usePrevious