ensureThemeColorReuse method
void
ensureThemeColorReuse({
- required String page,
- required BrownfieldPatternTarget target,
- required String tokenQuery,
- DslReuseResolutionPolicy policy = DslReuseResolutionPolicy.closestMatch,
Replaces a literal color choice with a resolved theme token.
Implementation
void ensureThemeColorReuse({
required String page,
required BrownfieldPatternTarget target,
required String tokenQuery,
DslReuseResolutionPolicy policy = DslReuseResolutionPolicy.closestMatch,
}) {
raw((project) {
final tokenName = resolveDslThemeColorTokenName(
project,
query: tokenQuery,
policy: policy,
);
if (tokenName == null) {
throw StateError(
'No reusable theme color token resolved for "$tokenQuery".',
);
}
final editor = _pagePatternEditor(page);
final snapshot = _requirePagePatternSnapshot(project, page);
final targetRef = _resolvePatternTarget(
snapshot,
editor,
target,
operation: 'ensureThemeColorReuse(target: ...)',
);
editor.update(
_selectionForResolvedTarget(editor, targetRef),
(patch) => patch.color(NamedColor(tokenName)),
);
_applyBrownfieldWidgetClassEdit(project, editor);
});
}