Enhancements
- Add Reactter devtools extension.
- Add
Rt.addObserverandRt.removeObservermethods to manage the observers. - Add
RtStateObserverclass to monitor the lifecycle of state(onStateCreated,onStateBound,onStateUnbound,onStateUpdatedandonStateDisposed). - Add
RtDependencyObserverclass to monitor the lifecycle of dependency(onDependencyRegistered,onDependencyCreated,onDependencyMounted,onDependencyUnmounted,onDependencyDeleted,onDependencyUnregisteredandonDependencyFailed). - Add
Rt.initializeLoggerto initialize the Reactter logger. - Add
Rt.initializeDevToolsto initialize the devtools for observing the states and dependencies. - Add
debugLabelanddebugInfoto states and hooks to get info for debugging. - Add
RtContextMixinmixin to provide access to theRtinstance. - Add
RtStateabstract class to implement the base logic of the state. - Add
Rt.registerStatemethod to create a new state. - Add
Rt.getRefAtto get the reference of dependency created. - Add
initHookmethod toRtHookto call when hook is created. - Add
cancelmethod toUseAsyncStateto cancel current method. - Update
batchanduntrackedmethods to support asynchronous callbacks. - Enhance event handling and notifier logic for improved stability and performance.
- Enhance state management and error handling.
- Add dependency
modetoRtComponent. - Enhance dependency management to ensure to re-build when is detected changes while building.
Breakings
- Remove
Reactter, useRtinstead. - Remove
ReactterStateImplandRtStateImpl, useRtStateinstead. - Replace
UseAsyncStateStatus.standbytoUseAsyncStateStatus.idle. - Rename
DispatchEffecttoAutoDispatchEffect. - Move
asyncFunctionto the first parameter ofUseAsyncStateandUseAsyncState.withArg. - Remove
Rt.isRegistered, useRt.isActiveinstead. - Remove
Rt.getInstanceManageMode, useRt.getDependencyModeinstead. - Remove
InstanceManageMode, useDependencyModeinstead. - Remove
Lifecycle.initialized, useLifecycle.createdinstead. - Remove
Lifecycle.destroyed, useLifecycle.deletedinstead. - Replace
LifecycleObservertoRtDependencyLifecycle. - Remove
LifecycleObserver.onInitialized, useRtDependencyLifecycle.onCreatedinstead. - Remove
ReactterInstanceandReactterDependency, useRtDependencyinstead. - Remove
ReactterHook, useRtHookinstead. - Remove
ReactterInterface, useRtInterfaceinstead. - Remove
RtState.refresh, useRtState.notifyinstead. - Remove
UseInstance, useUseDependencyinstead. - Remove
ReactterAction, useRtActioninstead. - Remove
ReactterActionCallable, useRtActionCallableinstead. - Remove
MemoInterceptors, useMultiMemoInterceptorinstead. - Remove
AsyncMemoSafe, useMemoSafeAsyncInterceptorinstead. - Remove
TemporaryCacheMemo, useMemoTemporaryCacheInterceptorinstead. - Remove
MemoInterceptorWrapper, useMemoWrapperInterceptorinstead. - Remove
Obj. - Remove
initproperty fromRtProvider, useRtProvider.initinstead. - Remove
ReactterComponent, useRtComponentinstead. - Remove
ReactterConsumer, useRtConsumerinstead. - Remove
ReactterProvider, useRtProviderinstead. - Remove
ReactterProviders, useRtMultiProviderinstead. - Remove
ReactterScope, useRtScopeinstead. - Remove
ReactterWatcher, useRtSignalWatcherinstead. - Remove
ReactterDependencyNotFoundException, useRtDependencyNotFoundExceptioninstead. - Remove
ReactterScopeNotFoundException, useRtScopeNotFoundExceptioninstead.
Fixes
- Fix bug in
UseEffectcausing dependencies to not be unwatched. - Fix to show the correct dependency mode in the logger of the
Rt.registermethod. - Fix nested
Rt.batchmethod to work correctly. - Add error handling listeners and continue to next listeners in
Notifierclass. - Fix to propagate state param to
boundInstance. - Remove listeners correctly from single-use listeners and handle null cases.
Internal
- Add
StateObservertest. - Rename some variables to use consistent naming convention.
- Update
UseDependencyto support id parameter in tests. - Update annotated markdown references for clarity.
- Add Reactter devtools extension and configuration files.
- Rearrange arguments in
UseAsyncStateconstructor. - Simplify the
UseReducerimplementation. - Add observer support for nested state updates.
- Allow communication between application and devtools extension.
- Add
IContextinterface class to represent the current context what the application is running in. - Replace
StateBasetoRtStateinterface. - Separate logic of
EventNotifiertoNotifierclass. - Restructure the framework and core classes.
- Update
RtWatcherto extendRtScopeand refactor code. - Update examples to use new features.
- Improve dispose logic in
RtStateandUseDependency. - Update hook registration and state attachment logic.
- Improve
nulllistener handling inNotifierclass. - 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