Releases: 2devs-team/reactter
Releases · 2devs-team/reactter
v8.0.0
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, use [RtScope](https://pub.dev/document...
v7.3.0
Breakings
- refactor(core, test): Deprecate
isRegisteredmethod and replace it withisActiveto use a right concept.- Deprecated
Rt.isRegistered, useRt.isActiveinstead.
- Deprecated
- refactor: Deprecate
Objclass, and extension methodstoSignalandtoObj. - refactor: Update references to use
Rtinstead ofReactter. - refactor: Update references to use
RtStateinstead ofReactterState.- Deprecate
ReactterState, useRtStateinstead. - Deprecate
ReactterStateImpl, useRtStateImplinstead.
- Deprecate
- refactor: Update references to use
RtHookinstead ofReactterHook.- Deprecate
ReactterHook, useRtHookinstead.
- Deprecate
- refactor: Update references to use
RtDependencyinstead ofReactterDependency.- Deprecate
ReactterDependency, useRtDependencyinstead. - Deprecate
ReactterDependencyNotFoundException, useRtDependencyNotFoundExceptioninstead.
- Deprecate
- refactor: Update references to use
RtActioninstead ofReactterActionandRtActionCallableinstead ofReactterActionCallable.- Deprecate
ReactterAction, useRtActioninstead. - Deprecate
ReactterActionCallable, useRtActionCallableinstead.
- Deprecate
- refactor: Update memo interceptors to use more descriptive names.
- Deprecate
MemoInterceptors, useMemoMultiInterceptorinstead. - Deprecate
AsyncMemoSafe, useMemoSafeAsyncInterceptorinstead. - Deprecate
TemporaryCacheMemo, useMemoTemporaryCacheInterceptorinstead. - Deprecate
MemoInterceptorWrapper, useMemoWrapperInterceptorinstead.
- Deprecate
- refactor: Update widget references to use
RtSignalWatcherinstead ofReactterWatcher.- Deprecate
ReactterWatcher, useRtSignalWatcherinstead.
- Deprecate
- refactor: Update references to use
RtSelectorinstead ofReactterSelector.- Deprecate
ReactterSelector, useRtSelectorinstead.
- Deprecate
- refactor: Update references to use
RtScopeinstead ofReactterScope.- Deprecate
ReactterScope, useRtScopeinstead. - Deprecate
ReactterScopeNotFoundException, useRtScopeNotFoundExceptioninstead.
- Deprecate
- refactor: Update references to use
RtMultiProviderinstead ofReactterProviders.- Deprecate
ReactterProviders, useRtMultiProviderinstead.
- Deprecate
- refactor: Update references to use
RtProviderinstead ofReactterProvider.- Deprecated
ReactterProvider, useRtProviderinstead.
- Deprecated
- refactor: Update references to use
RtConsumerinstead ofReactterConsumer.- Deprecate
ReactterConsumer, useRtConsumerinstead.
- Deprecate
- refactor: Update references to use
RtComponentinstead ofReactterComponent.- Deprecate
ReactterComponent, useRtComponentinstead.
- Deprecate
Enhancements
- feat(extensions): Add
idparameter towatchmethod. - feat(widgets): Add the
RtWatcherwidget. It's a experimental widget for watching state and rebuilding when the state watched changes.
Fixes
- **...
v7.2.0
Breakings
- refactor(core,hooks,test): Deprecate and replace some enums and methods on Lifecycle to use the right concept.
- Deprecated
Lifecycle.initialized, useLifecycle.createdinstead. - Deprecated
Lifecycle.destroyed, useLifecycle.deletedinstead. - Deprecated
onInitializedmethod ofLifecycleObserver, useonCreatedmethod instead. - Deprecated
onDestroyedmethod ofLifecycleObserver, useonDeletedmethod instead.
- Deprecated
- refactor(widgets): Update
ReactterProviderto useReactterProvider.initconstructor instead ofinitproperty.- Deprecated
initproperty ofReactterProvider, useReactterProvider.initinstead.
- Deprecated
Enhancements
- feat(core): Add
Reactter.hasRegistermethod to check if the dependency is registered in Reactter. - refactor(framework): Improve lazy loading performance in
ProviderImpl, update implementation to reduce unnecessary checks and streamline widget rendering.
Fixes
- fix(core): Prevent all
ReactterDependencyevents from being deleted after deregistering a dependency.- Update
offAllmethod inEventHandlerto support generic removal.
- Update
- fix(hooks): Ensure that the callback is executed by the
dependenciesofUseEffect. - refactor(hooks): Improve error handling in
UseEffect.
Internal
- refactor(core,framework,hooks): Update
dependencyInjectiongetter names in Reactter codebase. - refactor(framework,test): Rename
reactter_instancetoreactter_dependencyand fix imports and exports. - doc(hooks): Update
UseReducerandUseStatedocumentation to improve clarity and consistency. - test(core,hooks): Rename some files and update the descriptions.
- test(core): Add
Reactter.hasRegistertest. - refactor: Remove unnecessary 'late' modifier in
TestController. - test: Add comparable test cases for
Args. - refactor: 📝 Improve some comments and documentation for clarity and consistency.
- test: 📝 Update the descriptions of some test for clarity and consistency.
- test(widgets): Add test case for nullish dependency obtained from context.
- test(widgets): Add test case for getting dependency form
ReactterProvidersiblings. - refactor: Resolve lints and formatting issues.
Full Changelog: v7.1.0...v7.2.0
v7.1.0
Breakings
- refactor(core,framework,hooks,test): Deprecate and replace some classes and methods to use the right concept.
- Deprecated
UseInstancehook, useUseDependencyhook instead. - Deprecated
InstanceManageModeenum, useDependencyModeenum instead. - Deprecated
ReactterInstanceclass, useReactterDependencyclass instead. - Deprecated
getInstanceManageModemethod, usegetDependencyModemethod instead.
- Deprecated
Internal
- refactor(core,framework,hooks,test): Deprecate and replace some classes and methods to use the right concept.
- Renamed
InstanceManagerclass toDependencyInjection. - Renamed
EventManagerclass toEventHandler. - Renamed
StateManagerclass toStateManagement.
- Renamed
Full Changelog: v7.0.1...v7.1.0
v7.0.1
Internal
- test: Refactor and structure examples.
- doc: Update
ReactterWatcherbuilder comments for clarity.
Full Changelog: v7.0.0...v7.0.1
v7.0.0
Enhancements
- feat(core, framework): Add
Reactter.batchandReactter.untrackedmethods.Reactter.batchhepls to execute the givencallbackfunction within a batch operation. A batch operation allows multiple state changes to be grouped together, ensuring that any associated side effects are only triggered once, improving performance and reducing unnecessary re-renders.Reactter.untrackedhepls to execute the givencallbackfunction without tracking any state changes. This means that any state changes that occur inside thecallbackfunction will not trigger any side effects.
- refactor(framework): Refactor lifecycle event handling and add lifecycle observer interface.
- Add
LifecycleObserverinteface for event handling of the instance. - Add
didUnmountlifecycle.
- Add
- refactor(core, framework, types): Add
LogLevelenum and updatedefaultLogWriterCallbacksignature. - refactor(hooks): Improve
UseEffectperformance and readability.- Add
UseEffect.runOnInitconstructor to execute callback effect on initialization.
- Add
- feat(framework, widgets): Add
ReactterProvider.lazyconstructor for lazy instance initialization. - refactor(widgets): Add
idproperty toReactterComponentfor debugging information.
Breakings
- refactor(extensions, hooks, objs, signals): Remove features deprecated.
- Remove
List<ReactterState>.when, usecontext.selectorUseComputeinstead. - Remove
UseContext, useUseInstanceinstead. - Remove
UseEvent, use event shortcuts instead. - Remove
initialStateandresetfromUseState. - Remove
.obj, useObjclass instead. - Remove
.signal, useSignalclass instead.
- Remove
- refactor(framework, widgets, test): Change the position of
InstanceContextBuilder(InstanceChildBuildernow) arguments.- Move
contextto first argument onInstanceContextBuilder(InstanceChildBuildernow). - Adapt the
InstanceContextBuilder(InstanceChildBuildernow) ofReactterComponent,ReactterConsumerandReactterProviderwidgets.
- Move
- refactor(core, hooks): Rename
attachTotobind,detachInstancetounbindandinstanceAttachedtoinstanceBinded. - refactor(hooks): Improve
UseEffectperformance and readability.
Fixes
- fix(obj): Fix equality comparison in
ObjBaseclass. - fix(core): Resolve event for both types(instanceRef, instanceObj) and log event error.
- fix(core): Find the instance registered by the instance manager when searching for the extended class.
- refactor(core): Fix out-of-bounds index on
getHashCodeRefAtmethod.
Internal
- refactor(framework, widgets, test): Change the position of
InstanceContextBuilder(InstanceChildBuildernow) arguments.- Adjust the tests about
ReactterComponent,ReactterConsumerandReactterProviderwidgets. - Adjust the documentation about
ReactterComponent,ReactterConsumerandReactterProviderwidgets.
- Adjust the tests about
- refactor(framework, widgets, test): Improve framework structure and simplify the
ReactterProvidercode.- Remove
Reactterprefix of the framework classes. - Add
ProviderBase,ProviderImpl,ProviderElementandProviderRefclass. - Rename
InstanceContextBuildertoInstanceChildBuilderandInstanceValueBuildertoInstanceValueChildBuilder. - Add
ChildBuildertype. - Add
Reactter.getHashCodeRefmethod.
- Remove
- refactor: Refactor file structure and imports.
- refactor(core, framework, hooks, signal): Rename variables of
ReactterZoneand improveReactterStateimplementation. - refactor(test): Add
lazyState,untrackedandbatchtests. - refactor(core, test): Fix lifecycle event handling and add lifecycle_observer test.
- refactor(core, framework, test): Refactor event manager and remove unused code for 100% coverage.
- refactor(core, framework): Add
BindingZoneclass and update references. - fix(core): Fix generic type constraint in
_getInstanceRefmethod. - refactor(core): Refactor event handling logic and optimize listener removal.
- test(core, hooks): Add tests for signal usage on instance and binding to another instance.
- test(widgets): Add
ReactterProvider.lazytests, updateReactterComponenttests and addLifecycleObservertoTestController. - fix(example): Update dependencies and fix code formatting on examples.
What's Changed
- Master <= Develop by @CarLeonDev in #4
Full Changelog: https://git...
v6.2.0
v6.1.0
Enhancements
- feat(framework, widgets, extensions): Add
ReactterSelectorwidget andcontext.selectmethod extension.ReactterSelectorandcontext.selecthelp to control the rebuilding of widget tree using aSelectormethods that allows to select a state specific for listening, and return a computed value.
- feat(widgets): Add
ReactterScopeWidget.
IfReactterProvider.contextOfdoesn't have a type defined, useReactterScopeto work correctly.
Breakings
- perf(framework): Remove
updateAsyncfromReactterHookandReactterState. - perf(framework): Remove
emitAsyncfromReactterEventManager. - refactor(extensions): Deprecate
List<ReactterState>.when, usecontext.selectorUseComputeinstead.
Fixes
- fix(widgets): Notify
ReactterWatcherhas changed when available. - fix(framework): Remove
UseWenasynchronously when callmarkNeedsNotifyDependentsthrough its changes.
Internal
- perf(framework): Add
ReactterNotifierto manage events. - refactor(widgets): Improve
ReactterProvidercode. - perf(extensions, framework, widgets): Improve performance of
context.watch. - refactor(types): Add
WatchStateandSelectComputeValuetypes. - refactor(framework): Improve message error about
notifyListenersofReactterNotifier. - feat(framework, widgets, extensions): Improve managing dependency.
- test(framework, widgets, hooks): Fix some part for test coverage.
- test: Add
context.selectandReactterSelectortest. - doc: Fix some code documentation.
- refactor(example): Improve api example.
- doc: Add documention about new features.
Full Changelog: v6.0.2...v6.1.0
v6.0.2
v6.0.0
Enhancements
- feat(args): Implement generic arguments.
- Add the
Argsclass which represent one or more arguments. - Add the
Args1,Args2andArgs3classes which represent one, two and three arguments respectively. - Add the types
ArgsX2andArgsX3which representArgs2andArgs3with the same arguments type. - Add
arymethods for converting Function to Function with generic arguments.
- Add the
- feat(memo): Implement the
Memoclass. It's used for memoizing values returned by a calcutate function. - feat(memo): Add
MemoInterceptors,MemoInterceptorandMemoInterceptorWrapperfor intercepting and handling various events during the memoization process. - feat(memo): Add
AsyncMemoSafefor removing the memoized value if its futures that throw an error when executed. - feat(memo): Add
TemporaryCacheMemofor removing memoized values from the cache after a specified duration. - feat(framework, widgets):Improve
ReactterInstanceManagerandReactterInstance.- Add
refparameter toReactter.get. - Add
Reactter.destory. - Add
InstanceManageMode.builder,InstanceManageMode.factoryandInstanceManageMode.singletonenums. These types represent different ways of creating and managing instances. - Add
Reactter.getInstanceManageModemethod for getting the instance type of the instance specified. - Add
Reactter.isRegisteredmethod for check if an instance is registered in Reactter. - Add
Reactter.lazyBuilder,Reactter.lazyFactory,Reactter.lazySingletonmethods to register a builder function to create a new instance in one of the different types. - Add
Reactter.builder,Reactter.factory,Reactter.singletonmethods to create a new instance in one of the different types. - Add
typeproperty toReactterProvider.
- Add
- feat(hooks): Improve
UseInstancehook.- Add
UseInstance.registerconstructor for registering the builder function when it instantiated. - Add
UseInstance.createconstructor to create an instancia when it instantiated. - Add
UseInstance.getconstructor to create and/or get an instancia when it instantiated. - Add
UseInstance.lazyBuilder,UseInstance.lazyFactory,UseInstance.lazySingletonfactories to register a builder function to create a new instance in one of the different types when it instantiated. - Add
UseInstance.builder,UseInstance.factory,UseInstance.singletonfactories to create a new instance in one of the different types when it instantiated.
- Add
Breakings
- refactor(framework): Replace
Reactter.instanceOftoReactter.find. - refactor(framework): Change builder parameter of
Reactter.registerandReactter.createto positional parameter. - refactor(hooks): Add
UseAsyncState.withArgfor usingUseAsyncStatewithArgs.- Now, the
resolvemethod ofUseAsyncStateis used without arguments. Replace withUseAsyncState.withArg. Itsresolvemethod allows to use arguments.
- Now, the
- refactor(hooks, example): Deprecate
UseState.initialandUseState.reset.- Avoid using it.
- refactor(hooks): Deprecate
UseEventhook.- Use event shortcuts instead.
- refactor(hooks, test): Deprecate
UseContexthook.- Use manage instances shortcuts or
UseInstanceinstead.
- Use manage instances shortcuts or
- refactor(framework): The
Reactter.unregistercouldn't deregister the instance builder when the instance is active. - refactor(framework): Rename
Reactter.disposetoReactter.offAll. - refactor(types): Rename
ContextBuildertoInstanceBuilderandInstanceBuildertoInstanceContextBuilder. - reactor(framework): Rename
Reactter.lazytoReactter.lazyState.
Internal
- refactor(framework, hooks, test): Improve code structure and how to attach an instance to states using
ReactterZoneand structure code ofReactterState. - refactor(example): Improve examples using the new features.
- test(framework, widgets, hooks): Add some tests about
ReactterInstanceManager,ReactterInstance,UseInstance - test(framework): Improve tests.
- test(framework): Add
Reactter.destroytest. - test(memo): Add
MemoandMemoInterceptortest. - test(args): Add
Argstest. - test(hooks): Add
UseAsyncState.withArgtest. - test(hooks): Add
UseInstancetest. - fix(test): Fix grammar of test description.
What's Changed
- Fixed typos and improved grammar by @Kentukyyo in #1
- Pre release 6.0.0 by @CarLeonDev in #2
New Contributors
- @Kentukyyo made their first contribution in https://github.com/...