Open victoreronmosele opened 6 months ago
The logic for determining an AbstractGradient's identity has some improvements that can be made:
AbstractGradient
The GradientDirection is not considered part of the AbstractGradient's identity check.
GradientDirection
The only properties checked are:
This leads to specifying the gradient direction separately from the gradient object when selecting rebuild triggers for the PreviewSection. See https://github.com/victoreronmosele/flutter_gradient_generator/pull/80#discussion_r1541928899.
PreviewSection
The logic for the identity check is duplicated across LinearStyleGradient, RadialStyleGradient, and SweepStyleGradient.
LinearStyleGradient
RadialStyleGradient
SweepStyleGradient
The logic can be centralized in the AbstractGradient class.
This will improve maintainability, especially as other gradient styles will be introduced.
Improvements
The logic for determining an
AbstractGradient
's identity has some improvements that can be made:1. Add Gradient Direction To AbstractGradient's Identity Check
The
GradientDirection
is not considered part of theAbstractGradient
's identity check.The only properties checked are:
This leads to specifying the gradient direction separately from the gradient object when selecting rebuild triggers for the
PreviewSection
. See https://github.com/victoreronmosele/flutter_gradient_generator/pull/80#discussion_r1541928899.LinearStyleGradient
https://github.com/victoreronmosele/flutter_gradient_generator/blob/f72558722027a782a079be0ec346caa969e1dc49/lib/models/linear_style_gradient.dart#L83-L942. Reuse Identity Check Logic
The logic for the identity check is duplicated across
LinearStyleGradient
,RadialStyleGradient
, andSweepStyleGradient
.The logic can be centralized in the
AbstractGradient
class.This will improve maintainability, especially as other gradient styles will be introduced.
LinearStyleGradient:
https://github.com/victoreronmosele/flutter_gradient_generator/blob/f72558722027a782a079be0ec346caa969e1dc49/lib/models/linear_style_gradient.dart#L83-L94RadialStyleGradient:
https://github.com/victoreronmosele/flutter_gradient_generator/blob/f72558722027a782a079be0ec346caa969e1dc49/lib/models/radial_style_gradient.dart#L67-L78SweepStyleGradient:
https://github.com/victoreronmosele/flutter_gradient_generator/blob/f72558722027a782a079be0ec346caa969e1dc49/lib/models/sweep_style_gradient.dart#L69-L80