Releases: junerver/ComposeHooks
v2.3.0
What's Changed
Compared with hooks2:2.2.1 (hooks2_2.2.1).
Hooks
- Add
useSsefor SSE and streaming connections. - Add the
useTableheadless table hook and declarativeTablecomponent, including sorting, filtering, grouping, expansion, row selection, column visibility, column sizing, and pagination support. - Add
useTableRequestfor paginated table requests, with fixes for cache keys, filter handling, and page-switch behavior. - Improve
useFormwith touched/dirty state, validation trigger control, submit handling, and expanded form instance/ref APIs. - Improve
useStateMachinewith action-only events, defect fixes, and expanded test coverage. - Fix
useRequestFetch/plugin behavior, nullable parameter handling, and related cache/polling cases. - Fix
useReducerstale closure issues,dispatchAsync,usePrevious, debounce/throttle timing, timeout/countdown behavior, and related edge cases.
AI Hooks
- Add
useChat,useGenerateObject,useAgent,useAsr, anduseTts. - Add multimodal input support, streaming parsing, JSON healing, tool calling, Anthropic Messages API support, and DeepSeek/MiMo reasoning-content compatibility.
- Add multi-provider support with load balancing, failover, provider metrics, retry configuration, and reusable HTTP engine abstractions.
- Add token usage tracking and update preset model IDs.
Build, Examples, and Docs
- Upgrade Kotlin, KSP, AGP, Gradle, Compose Multiplatform, navigation, and related dependencies; align JVM targets to 17.
- Add and update showcase examples for AI hooks, SSE, table, table requests, and existing hooks.
- Add broader test coverage for hooks, table features,
useRequestplugins, form behavior, and AI flows. - Expand documentation and local contributor/agent guidance.
Full Changelog: hooks2_2.2.1...v2.3.0
hooks2:2.2.2-beta-1
What's Changed
- add new hook:
useChat- Chat with AI - add new hook:
useGenerateObject- Structured data generation with AI - add multimodal support (text + image/file input) for AI hooks
- add cross-platform file picker utility
- refactor type definitions and add operator overloads
- refactor examples to use hooks consistently
Full Changelog: hooks2_2.2.1...v2.2.2-beta-1
hooks2:2.2.1
What's Changed
- refactor
useRequest, provides type-safe request functions by @junerver in #41 - add new hook:
useSorted - add new hook:
useDateFormat - add new hook:
useControllable - fix #37
- fix #38
- refactor
useStateAsync - add new hook:
useMemoizedFn - refactor
useDebounceFnanduseThrottleFn, provides type-safe return functions - optimize
useDateFormat - fix #42
- update example
Full Changelog: hooks2_2.2.0...hooks2_2.2.1
hooks2:2.2.0
What's Changed
- ✨: add new hook:
useSelectableby @AKAAE86 in #32 - ✨: add new hook:
useStateMachineby @AKAAE86 in #34 - ✨: add new hook:
useTimeAgo - ✨: add new hook:
useLastChanged - ✨: add new hook:
useListReduce - ✨: add new hook:
useTimeoutFn - ✨: add new hook:
useTimeoutPoll - ✨: add new hook:
useCancelableAsync - ✨: add new hook:
useStateAsync - ✨: add new hook:
usePausableEffect - ✨: add new hook:
useCycleList - ✨: add new hooks set
useMathcontains:useAbs,useCeil,useFloor,useRound,useTrunc,useMin,useMax,usePow,useSqrt
New Contributors
Full Changelog: hooks2_2.1.0...hooks2_2.2.0
变更内容
- ✨:添加新钩子:
useSelectable,由 @AKAAE86 在 #32 中发布 - ✨:添加新钩子:
useStateMachine,由 @AKAAE86 在 #34 中发布 - ✨:添加新钩子:
useTimeAgo - ✨:添加新钩子:
useLastChanged - ✨:添加新钩子:
useListReduce - ✨:添加新钩子:
useTimeoutFn - ✨:添加新钩子:
useTimeoutPoll - ✨:添加新钩子:
useCancelableAsync - ✨:添加新钩子:
useStateAsync - ✨:添加新钩子:
usePausableEffect - ✨:添加新钩子:
useCycleList - ✨:添加新hooks 集合
useMath包含:useAbs、useCeil、useFloor、useRound、useTrunc、useMin、useMax、usePow、useSqrt
新贡献者
完整更新日志:hooks2_2.1.0...hooks2_2.2.0**
hooks2:2.1.0
NOTE: This project has been migrated to Kotlin Mutliplatform, and the artifact id uploaded to Maven central has been changed to hooks2
Please see the wiki for migration notes
- upgrade kotlin -> 2.1.0
- fix #25
- optimization
- migrate to KMP #26
- Reduced the use of tuples as return types for hooks
- Introduced new parameters
debounceOptionsOfandthrottleOptionsOfinRequestOptions - Extended set/get delegate functions for
PersistentHolder,Ref, andMutableRef - Refactored
usePersistent - Refactored
unwrap - Exposed
HooksEventManagerto allow communication between non-Compose and Compose sides via events - Added a new hook:
useImmutableList - Refactored
useRequest - fix: #29
- deprecated hooks are marked as private
- breaking change: use
State<T>to wrap the return value of hooks - breaking change: Some set function property types changed from
StateValueFn<T>toStateValueFn<Either<T, (T) -> T>>
注意:该项目已迁移到 Kotlin Mutliplatform,上传到 Maven central 的工件 ID 已更改为 hooks2
请参阅 wiki 了解迁移说明
- 升级 kotlin -> 2.1.0
- 修复 #25
- 优化
- 迁移到 KMP #26
- 减少了使用元组作为钩子的返回类型
- 在
RequestOptions中引入了新参数debounceOptionsOf和throttleOptionsOf - 扩展了
PersistentHolder、Ref和MutableRef的 set/get 委托函数 - 重构了
usePersistent - 重构了
unwrap - 公开了
HooksEventManager以允许非 Compose 端和 Compose 端通过事件进行通信 - 添加了新钩子:
useImmutableList - 重构了
useRequest - 修复:#29
- 弃用的钩子被标记为私有
- 重大更改:使用
State<T>包装 hooks 的返回值 - 重大更改:一些设置函数属性类型从
StateValueFn<T>更改为StateValueFn<Either<T, (T) -> T>>
2.0.3
hooks2:2.1.0-beta1
NOTE: This project has been migrated to Kotlin Mutliplatform, and the artifact id uploaded to Maven central has been changed to hooks2
Please see the wiki for migration notes
- fix: #29
- deprecated hooks are marked as private,
- upgrade kotlin to 2.1.0
- Some set function property types changed from
StateValueFn<T>toStateValueFn<Either<T, (T) -> T>>(break change)
注意:该项目已迁移到 Kotlin Mutliplatform,上传到 Maven central 的工件 ID 已更改为 hooks2
请参阅 wiki 了解迁移说明
- 修复:#29
- 弃用的钩子被标记为私有
- 将 kotlin 升级到 2.1.0
- 一些设置函数属性类型从
StateValueFn<T>更改为StateValueFn<Either<T, (T) -> T>>(破坏性更新)
hooks2:2.1.0-alpha1
- Reduced the use of tuples as return types for hooks
- Introduced new parameters
debounceOptionsOfandthrottleOptionsOfinRequestOptions - Extended set/get delegate functions for
PersistentHolder,Ref, andMutableRef - Refactored
usePersistent - Refactored
unwrap - Exposed
HooksEventManagerto allow communication between non-Compose and Compose sides via events - Added a new hook:
useImmutableList - Refactored
useRequest
- 减少了使用元组作为钩子的返回类型
- 在
RequestOptions中引入了新参数debounceOptionsOf和throttleOptionsOf - 扩展了
PersistentHolder、Ref和MutableRef的 set/get 委托函数 - 重构了
usePersistent - 重构了
unwrap - 公开了
HooksEventManager以允许非 Compose 端和 Compose 端通过事件进行通信 - 添加了新钩子:
useImmutableList - 重构了
useRequest
hooks2:2.1.0-alpha0
NOTE: This project has been migrated to Kotlin Mutliplatform, and the artifact id uploaded to Maven central has been changed to hooks2
Please see the wiki for migration notes
- upgrade kotlin -> 2.0.20
- fix #25
- optimization
- migrate to KMP
- breaking change:use
State<T>to wrap the return value of hooks
注意:该项目已迁移到 Kotlin Mutliplatform,上传到 Maven central 的工件 ID 已更改为 hooks2
请参阅 wiki 了解迁移说明
- 升级 kotlin -> 2.0.20
- 修复 #25
- 优化
- 迁移到 KMP
- 重大更改:使用
State<T>包装 hooks 的返回值
2.0.2
- optimization
- complete swr/cache
This is the last release of id: hooks. If there are any bugs in the future, they will be fixed. The subsequent version numbers are all 2.0.x.
hooks2 is fully migrated to KMP. The first official version will start from 2.1.0. hooks2 has many destructive updates. If your project has not encountered performance problems caused by too much reorganization, or if you are a pure Android project, you do not need to migrate to hooks2
- 一些优化
- 完善 useRequest 的 swr、缓存
这是 id: hooks 的最后一个发行版,后续如果存在bug,会进行修复,后续的版本号都在 2.0.x。
hooks2 全面迁移到 KMP,第一个正式版将从 2.1.0 开始,hooks2 由很多破坏性更新,如果你的项目还没有出现过多重组带来的性能问题,或者你是纯Android项目,可以不必迁移到 hooks2