Enhancements
- Add Reactter devtools extension.
- Add
Rt.addObserver
andRt.removeObserver
methods to manage the observers. - Add
RtStateObserver
class to monitor the lifecycle of state(onStateCreated
,onStateBound
,onStateUnbound
,onStateUpdated
andonStateDisposed
). - Add
RtDependencyObserver
class to monitor the lifecycle of dependency(onDependencyRegistered
,onDependencyCreated
,onDependencyMounted
,onDependencyUnmounted
,onDependencyDeleted
,onDependencyUnregistered
andonDependencyFailed
). - Add
Rt.initializeLogger
to initialize the Reactter logger. - Add
Rt.initializeDevTools
to initialize the devtools for observing the states and dependencies. - Add
debugLabel
anddebugInfo
to states and hooks to get info for debugging. - Add
RtContextMixin
mixin to provide access to theRt
instance. - Add
RtState
abstract class to implement the base logic of the state. - Add
Rt.registerState
method to create a new state. - Add
Rt.getRefAt
to get the reference of dependency created. - Add
initHook
method toRtHook
to call when hook is created. - Add
cancel
method toUseAsyncState
to cancel current method. - Update
batch
anduntracked
methods to support asynchronous callbacks. - Enhance event handling and notifier logic for improved stability and performance.
- Enhance state management and error handling.
- Add dependency
mode
toRtComponent
. - Enhance dependency management to ensure to re-build when is detected changes while building.
Breakings
- Remove
Reactter
, useRt
instead. - Remove
ReactterStateImpl
andRtStateImpl
, useRtState
instead. - Replace
UseAsyncStateStatus.standby
toUseAsyncStateStatus.idle
. - Rename
DispatchEffect
toAutoDispatchEffect
. - Move
asyncFunction
to the first parameter ofUseAsyncState
andUseAsyncState.withArg
. - Remove
Rt.isRegistered
, useRt.isActive
instead. - Remove
Rt.getInstanceManageMode
, useRt.getDependencyMode
instead. - Remove
InstanceManageMode
, useDependencyMode
instead. - Remove
Lifecycle.initialized
, useLifecycle.created
instead. - Remove
Lifecycle.destroyed
, useLifecycle.deleted
instead. - Replace
LifecycleObserver
toRtDependencyLifecycle
. - Remove
LifecycleObserver.onInitialized
, useRtDependencyLifecycle.onCreated
instead. - Remove
ReactterInstance
andReactterDependency
, useRtDependency
instead. - Remove
ReactterHook
, useRtHook
instead. - Remove
ReactterInterface
, useRtInterface
instead. - Remove
RtState.refresh
, useRtState.notify
instead. - Remove
UseInstance
, useUseDependency
instead. - Remove
ReactterAction
, useRtAction
instead. - Remove
ReactterActionCallable
, useRtActionCallable
instead. - Remove
MemoInterceptors
, useMultiMemoInterceptor
instead. - Remove
AsyncMemoSafe
, useMemoSafeAsyncInterceptor
instead. - Remove
TemporaryCacheMemo
, useMemoTemporaryCacheInterceptor
instead. - Remove
MemoInterceptorWrapper
, useMemoWrapperInterceptor
instead. - Remove
Obj
. - Remove
init
property fromRtProvider
, useRtProvider.init
instead. - Remove
ReactterComponent
, useRtComponent
instead. - Remove
ReactterConsumer
, useRtConsumer
instead. - Remove
ReactterProvider
, useRtProvider
instead. - Remove
ReactterProviders
, useRtMultiProvider
instead. - Remove
ReactterScope
, useRtScope
instead. - Remove
ReactterWatcher
, useRtSignalWatcher
instead. - Remove
ReactterDependencyNotFoundException
, useRtDependencyNotFoundException
instead. - Remove
ReactterScopeNotFoundException
, useRtScopeNotFoundException
instead.
Fixes
- Fix bug in
UseEffect
causing dependencies to not be unwatched. - Fix to show the correct dependency mode in the logger of the
Rt.register
method. - Fix nested
Rt.batch
method to work correctly. - Add error handling listeners and continue to next listeners in
Notifier
class. - Fix to propagate state param to
boundInstance
. - Remove listeners correctly from single-use listeners and handle null cases.
Internal
- Add
StateObserver
test. - Rename some variables to use consistent naming convention.
- Update
UseDependency
to support id parameter in tests. - Update annotated markdown references for clarity.
- Add Reactter devtools extension and configuration files.
- Rearrange arguments in
UseAsyncState
constructor. - Simplify the
UseReducer
implementation. - Add observer support for nested state updates.
- Allow communication between application and devtools extension.
- Add
IContext
interface class to represent the current context what the application is running in. - Replace
StateBase
toRtState
interface. - Separate logic of
EventNotifier
toNotifier
class. - Restructure the framework and core classes.
- Update
RtWatcher
to extendRtScope
and refactor code. - Update examples to use new features.
- Improve dispose logic in
RtState
andUseDependency
. - Update hook registration and state attachment logic.
- Improve
null
listener handling inNotifier
class. - Improve dispose, register and notify logic of state.
- Support asynchronous callbacks in untracked and batch methods and add test for it.
- Simplify dependency listener callbacks and improve state management checks.
- Clean up exports, remove deprecated code, and improve event handling.
- Add tests for dependency state watching and useEffect disposal.
- Update exports to improve clarity and remove hidden types.
- Enhance autoBinding method to accept an optional bound instance; improve state binding logic.
- Enhance test coverage by adding error handling, debug label, and debug info tests for various components.
- Update dependencies and version for reactter package.
- Improve test command for better coverage.
- Update dependency references to use objects instead of hashcodes.
- Update mount and unmount logic in
ProviderElement
. - Add constants for release, profile, debug, web modes.
- Update dependency handling and improve widget lifecycle management.
- Enhance provider and scope implementations with improved type safety and instance management.
What's Changed
- Reactter v8 by @CarLeonDev in #5
Full Changelog: v7.3.0...v8.0.0