From 344f433c7883cef949e62dfc385521f1f4c5fd0a Mon Sep 17 00:00:00 2001 From: EgoMoose Date: Mon, 30 Dec 2024 18:12:59 -0500 Subject: [PATCH 1/4] Add plugin context access --- src/init.luau | 1 + 1 file changed, 1 insertion(+) diff --git a/src/init.luau b/src/init.luau index 4309105..ebc9b07 100644 --- a/src/init.luau +++ b/src/init.luau @@ -23,6 +23,7 @@ return { TextInput = require("./Components/TextInput"), ThemeContext = require("./Contexts/ThemeContext"), + PluginContext = require("./Contexts/PluginContext"), useTheme = require("./Hooks/useTheme"), useMouseIcon = require("./Hooks/useMouseIcon"), From 4bf7d490ec7d1ffdfee396586dc567181631f241 Mon Sep 17 00:00:00 2001 From: EgoMoose Date: Wed, 1 Jan 2025 21:57:44 -0500 Subject: [PATCH 2/4] Add usePlugin hook --- src/Hooks/usePlugin.luau | 10 ++++++++++ src/init.luau | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 src/Hooks/usePlugin.luau diff --git a/src/Hooks/usePlugin.luau b/src/Hooks/usePlugin.luau new file mode 100644 index 0000000..eca39f7 --- /dev/null +++ b/src/Hooks/usePlugin.luau @@ -0,0 +1,10 @@ +local React = require("@pkg/@jsdotlua/react") + +local PluginContext = require("../Contexts/PluginContext") + +local function usePlugin() + local pluginContext = React.useContext(PluginContext) + return pluginContext and pluginContext.plugin +end + +return usePlugin diff --git a/src/init.luau b/src/init.luau index ebc9b07..233dfbc 100644 --- a/src/init.luau +++ b/src/init.luau @@ -23,8 +23,8 @@ return { TextInput = require("./Components/TextInput"), ThemeContext = require("./Contexts/ThemeContext"), - PluginContext = require("./Contexts/PluginContext"), useTheme = require("./Hooks/useTheme"), + usePlugin = require("./Hooks/usePlugin"), useMouseIcon = require("./Hooks/useMouseIcon"), } From ab5cd4c4b8229059ffef80238d0a4f2370a42603 Mon Sep 17 00:00:00 2001 From: sircfenner Date: Fri, 3 Jan 2025 20:00:32 +0000 Subject: [PATCH 3/4] add docs --- moonwave.toml | 2 +- src/Hooks/usePlugin.luau | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/moonwave.toml b/moonwave.toml index 6440c0f..a66e7d2 100644 --- a/moonwave.toml +++ b/moonwave.toml @@ -27,4 +27,4 @@ classes = ["Background", "Button", "Checkbox", "ColorPicker", "DatePicker", "Dro [[classOrder]] section = "Hooks" collapsed = false -classes = ["useMouseIcon", "useTheme"] \ No newline at end of file +classes = ["useMouseIcon", "useTheme", "usePlugin"] \ No newline at end of file diff --git a/src/Hooks/usePlugin.luau b/src/Hooks/usePlugin.luau index eca39f7..8d2689b 100644 --- a/src/Hooks/usePlugin.luau +++ b/src/Hooks/usePlugin.luau @@ -1,3 +1,18 @@ +--[=[ + @class usePlugin + + A hook used to obtain a reference to the root [plugin](https://create.roblox.com/docs/reference/engine/classes/Plugin) + instance associated with the current plugin. It requires a single [PluginProvider] to be present + higher up in the tree. + + ```lua + local function MyComponent() + local plugin = usePlugin() + ... + end + ``` +]=] + local React = require("@pkg/@jsdotlua/react") local PluginContext = require("../Contexts/PluginContext") From e514400fce03f20e63b8c0274d5a96ac02d6a8d0 Mon Sep 17 00:00:00 2001 From: sircfenner Date: Fri, 3 Jan 2025 20:01:21 +0000 Subject: [PATCH 4/4] add to changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d7a6294..b5c62f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## Unreleased + +- Add usePlugin hook + ## 1.1.0 - Fixed image links in documentation