Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions packages/flutter_solidart/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## 2.2.0

### Changes from solidart

- **FEAT**: Allow extending signal, computed, resource, list-signal, set-signal and map-signal.

## 2.1.0

### Changes from solidart
Expand Down
4 changes: 2 additions & 2 deletions packages/flutter_solidart/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: flutter_solidart
description: A simple State Management solution for Flutter applications inspired by SolidJS
version: 2.1.0
version: 2.2.0
repository: https://github.com/nank1ro/solidart
documentation: https://solidart.mariuti.com
topics:
Expand All @@ -18,7 +18,7 @@ dependencies:
flutter:
sdk: flutter
meta: ^1.11.0
solidart: ^2.2.0
solidart: ^2.3.0

dev_dependencies:
disco: ^1.0.0
Expand Down
4 changes: 4 additions & 0 deletions packages/solidart/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 2.3.0

- **FEAT**: Allow extending signal, computed, resource, list-signal, set-signal and map-signal.

## 2.2.0

- **FEAT**: Add `timeout` parameter to `Signal.until` method to specify a timeout duration. If the condition is not met within the specified duration, the returned future will complete with a `TimeoutException`.
Expand Down
38 changes: 10 additions & 28 deletions packages/solidart/lib/src/core/collections/list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,47 +15,29 @@ part of '../core.dart';
/// {@endtemplate}
class ListSignal<E> extends Signal<List<E>> with ListMixin<E> {
/// {@macro list-signal}
factory ListSignal(
ListSignal(
Iterable<E> initialValue, {
/// {@macro SignalBase.name}
String? name,

/// {@macro SignalBase.equals}
bool? equals,
super.equals,

/// {@macro SignalBase.autoDispose}
bool? autoDispose,
super.autoDispose,

/// {@macro SignalBase.trackInDevTools}
bool? trackInDevTools,
super.trackInDevTools,

/// {@macro SignalBase.comparator}
ValueComparator<List<E>?> comparator = identical,
super.comparator = identical,

/// {@macro SignalBase.trackPreviousValue}
bool? trackPreviousValue,
}) {
return ListSignal._internal(
initialValue: initialValue.toList(),
name: name ?? ReactiveName.nameFor('ListSignal'),
equals: equals ?? SolidartConfig.equals,
autoDispose: autoDispose ?? SolidartConfig.autoDispose,
trackInDevTools: trackInDevTools ?? SolidartConfig.devToolsEnabled,
trackPreviousValue:
trackPreviousValue ?? SolidartConfig.trackPreviousValue,
comparator: comparator,
);
}

ListSignal._internal({
required super.initialValue,
required super.name,
required super.equals,
required super.autoDispose,
required super.trackInDevTools,
required super.comparator,
required super.trackPreviousValue,
}) : super._internal();
super.trackPreviousValue,
}) : super(
initialValue.toList(),
name: name ?? ReactiveName.nameFor('ListSignal'),
);

@override
List<E> _setValue(List<E> newValue) {
Expand Down
39 changes: 10 additions & 29 deletions packages/solidart/lib/src/core/collections/map.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,47 +15,28 @@ part of '../core.dart';
/// {@endtemplate}
class MapSignal<K, V> extends Signal<Map<K, V>> with MapMixin<K, V> {
/// {@macro map-signal}
factory MapSignal(
Map<K, V> initialValue, {
MapSignal(
super.initialValue, {
/// {@macro SignalBase.name}
String? name,

/// {@macro SignalBase.equals}
bool? equals,
super.equals,

/// {@macro SignalBase.autoDispose}
bool? autoDispose,
super.autoDispose,

/// {@macro SignalBase.trackInDevTools}
bool? trackInDevTools,
super.trackInDevTools,

/// {@macro SignalBase.comparator}
ValueComparator<Map<K, V>?> comparator = identical,
super.comparator = identical,

/// {@macro SignalBase.trackPreviousValue}
bool? trackPreviousValue,
}) {
return MapSignal._internal(
initialValue: Map<K, V>.of(initialValue),
name: name ?? ReactiveName.nameFor('MapSignal'),
equals: equals ?? SolidartConfig.equals,
autoDispose: autoDispose ?? SolidartConfig.autoDispose,
trackInDevTools: trackInDevTools ?? SolidartConfig.devToolsEnabled,
trackPreviousValue:
trackPreviousValue ?? SolidartConfig.trackPreviousValue,
comparator: comparator,
);
}

MapSignal._internal({
required super.initialValue,
required super.name,
required super.equals,
required super.autoDispose,
required super.trackInDevTools,
required super.comparator,
required super.trackPreviousValue,
}) : super._internal();
super.trackPreviousValue,
}) : super(
name: name ?? ReactiveName.nameFor('MapSignal'),
);

@override
Map<K, V> _setValue(Map<K, V> newValue) {
Expand Down
38 changes: 10 additions & 28 deletions packages/solidart/lib/src/core/collections/set.dart
Original file line number Diff line number Diff line change
Expand Up @@ -15,47 +15,29 @@ part of '../core.dart';
/// {@endtemplate}
class SetSignal<E> extends Signal<Set<E>> with SetMixin<E> {
/// {@macro set-signal}
factory SetSignal(
SetSignal(
Iterable<E> initialValue, {
/// {@macro SignalBase.name}
String? name,

/// {@macro SignalBase.equals}
bool? equals,
super.equals,

/// {@macro SignalBase.autoDispose}
bool? autoDispose,
super.autoDispose,

/// {@macro SignalBase.trackInDevTools}
bool? trackInDevTools,
super.trackInDevTools,

/// {@macro SignalBase.comparator}
ValueComparator<Set<E>?> comparator = identical,
super.comparator = identical,

/// {@macro SignalBase.trackPreviousValue}
bool? trackPreviousValue,
}) {
return SetSignal._internal(
initialValue: initialValue.toSet(),
name: name ?? ReactiveName.nameFor('SetSignal'),
equals: equals ?? SolidartConfig.equals,
autoDispose: autoDispose ?? SolidartConfig.autoDispose,
trackInDevTools: trackInDevTools ?? SolidartConfig.devToolsEnabled,
comparator: comparator,
trackPreviousValue:
trackPreviousValue ?? SolidartConfig.trackPreviousValue,
);
}

SetSignal._internal({
required super.initialValue,
required super.name,
required super.equals,
required super.autoDispose,
required super.trackInDevTools,
required super.comparator,
required super.trackPreviousValue,
}) : super._internal();
super.trackPreviousValue,
}) : super(
initialValue.toSet(),
name: name ?? ReactiveName.nameFor('SetSignal'),
);

@override
Set<E> _setValue(Set<E> newValue) {
Expand Down
37 changes: 8 additions & 29 deletions packages/solidart/lib/src/core/computed.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,47 +52,26 @@ part of 'core.dart';
/// {@endtemplate}
class Computed<T> extends ReadSignal<T> {
/// {@macro computed}
factory Computed(
T Function() selector, {
Computed(
this.selector, {
/// {@macro SignalBase.name}
String? name,

/// {@macro SignalBase.equals}
bool? equals,
super.equals,

/// {@macro SignalBase.autoDispose}
bool? autoDispose,
super.autoDispose,

/// {@macro SignalBase.trackInDevTools}
bool? trackInDevTools,
super.trackInDevTools,

/// {@macro SignalBase.comparator}
ValueComparator<T?> comparator = identical,
super.comparator = identical,

/// {@macro SignalBase.trackPreviousValue}
bool? trackPreviousValue,
}) {
return Computed._internal(
selector: selector,
name: name ?? ReactiveName.nameFor('Computed'),
equals: equals ?? SolidartConfig.equals,
autoDispose: autoDispose ?? SolidartConfig.autoDispose,
trackInDevTools: trackInDevTools ?? SolidartConfig.devToolsEnabled,
trackPreviousValue:
trackPreviousValue ?? SolidartConfig.trackPreviousValue,
comparator: comparator,
);
}

Computed._internal({
required this.selector,
required super.name,
required super.equals,
required super.autoDispose,
required super.trackInDevTools,
required super.comparator,
required super.trackPreviousValue,
}) {
super.trackPreviousValue,
}) : super(name: name ?? ReactiveName.nameFor('Computed')) {
var runnedOnce = false;
_internalComputed = _AlienComputed(
this,
Expand Down
Loading