Skip to content

Commit

Permalink
feat: [MDS-1140] Create Colors page (#404)
Browse files Browse the repository at this point in the history
Co-authored-by: Birgitt Majas <birgitt.majas@yolo.com>
  • Loading branch information
GittHub-d and Birgitt Majas committed May 24, 2024
1 parent d87b9a2 commit 95e1c47
Show file tree
Hide file tree
Showing 7 changed files with 484 additions and 83 deletions.
220 changes: 138 additions & 82 deletions example/lib/src/storybook/common/color_options.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,94 +3,150 @@ import 'package:flutter/material.dart';
import 'package:moon_design/moon_design.dart';
import 'package:storybook_flutter/storybook_flutter.dart';

// The combination of "indexes" and colors in the colorTable() look-up table (LUT) is designed to circumvent
// the issue of a stale closure that would occur with the knob otherwise.
enum MoonColor {
piccolo,
hit,
beerus,
goku,
gohan,
bulma,
trunks,
goten,
popo,
jiren,
heles,
zeno,
krillin,
krillin60,
krillin10,
chichi,
chichi60,
chichi10,
roshi,
roshi60,
roshi10,
frieza,
frieza60,
frieza10,
dodoria,
dodoria60,
dodoria10,
cell,
cell60,
cell10,
raditz,
raditz60,
raditz10,
nappa,
nappa60,
nappa10,
whis,
whis60,
whis10,
}

List<MoonColor> mainColorsList = [
MoonColor.piccolo,
MoonColor.hit,
MoonColor.beerus,
MoonColor.goku,
MoonColor.gohan,
MoonColor.bulma,
MoonColor.trunks,
MoonColor.goten,
MoonColor.popo,
MoonColor.jiren,
MoonColor.heles,
MoonColor.zeno,
];

List<MoonColor> supportiveColorsList = [
MoonColor.krillin,
MoonColor.krillin60,
MoonColor.krillin10,
MoonColor.chichi,
MoonColor.chichi60,
MoonColor.chichi10,
MoonColor.roshi,
MoonColor.roshi60,
MoonColor.roshi10,
MoonColor.cell,
MoonColor.cell60,
MoonColor.cell10,
MoonColor.dodoria,
MoonColor.dodoria60,
MoonColor.dodoria10,
MoonColor.frieza,
MoonColor.frieza60,
MoonColor.frieza10,
MoonColor.nappa,
MoonColor.nappa60,
MoonColor.nappa10,
MoonColor.raditz,
MoonColor.raditz60,
MoonColor.raditz10,
MoonColor.whis,
MoonColor.whis60,
MoonColor.whis10,
];

Color getColor(BuildContext context, MoonColor color) => switch (color) {
MoonColor.piccolo => context.moonColors!.piccolo,
MoonColor.hit => context.moonColors!.hit,
MoonColor.beerus => context.moonColors!.beerus,
MoonColor.goku => context.moonColors!.goku,
MoonColor.gohan => context.moonColors!.gohan,
MoonColor.bulma => context.moonColors!.bulma,
MoonColor.trunks => context.moonColors!.trunks,
MoonColor.goten => context.moonColors!.goten,
MoonColor.popo => context.moonColors!.popo,
MoonColor.jiren => context.moonColors!.jiren,
MoonColor.heles => context.moonColors!.heles,
MoonColor.zeno => context.moonColors!.zeno,
MoonColor.krillin => context.moonColors!.krillin,
MoonColor.krillin60 => context.moonColors!.krillin60,
MoonColor.krillin10 => context.moonColors!.krillin10,
MoonColor.chichi => context.moonColors!.chichi,
MoonColor.chichi60 => context.moonColors!.chichi60,
MoonColor.chichi10 => context.moonColors!.chichi10,
MoonColor.roshi => context.moonColors!.roshi,
MoonColor.roshi60 => context.moonColors!.roshi60,
MoonColor.roshi10 => context.moonColors!.roshi10,
MoonColor.frieza => context.moonColors!.frieza,
MoonColor.frieza60 => context.moonColors!.frieza60,
MoonColor.frieza10 => context.moonColors!.frieza10,
MoonColor.dodoria => context.moonColors!.dodoria,
MoonColor.dodoria60 => context.moonColors!.dodoria60,
MoonColor.dodoria10 => context.moonColors!.dodoria10,
MoonColor.cell => context.moonColors!.cell,
MoonColor.cell60 => context.moonColors!.cell60,
MoonColor.cell10 => context.moonColors!.cell10,
MoonColor.raditz => context.moonColors!.raditz,
MoonColor.raditz60 => context.moonColors!.raditz60,
MoonColor.raditz10 => context.moonColors!.raditz10,
MoonColor.nappa => context.moonColors!.nappa,
MoonColor.nappa60 => context.moonColors!.nappa60,
MoonColor.nappa10 => context.moonColors!.nappa10,
MoonColor.whis => context.moonColors!.whis,
MoonColor.whis60 => context.moonColors!.whis60,
MoonColor.whis10 => context.moonColors!.whis10,
};

/// The index of the color options.
List<Option<int>> colorOptions = const [
Option(label: "piccolo", value: 0),
Option(label: "hit", value: 1),
Option(label: "beerus", value: 2),
Option(label: "goku", value: 3),
Option(label: "gohan", value: 4),
Option(label: "bulma", value: 5),
Option(label: "trunks", value: 6),
Option(label: "goten", value: 7),
Option(label: "popo", value: 8),
Option(label: "jiren", value: 9),
Option(label: "heles", value: 10),
Option(label: "zeno", value: 11),
Option(label: "krillin", value: 12),
Option(label: "krillin60", value: 13),
Option(label: "krillin10", value: 14),
Option(label: "chichi", value: 15),
Option(label: "chichi60", value: 16),
Option(label: "chichi10", value: 17),
Option(label: "roshi", value: 18),
Option(label: "roshi60", value: 19),
Option(label: "roshi10", value: 20),
Option(label: "frieza", value: 21),
Option(label: "frieza60", value: 22),
Option(label: "frieza10", value: 23),
Option(label: "dodoria", value: 24),
Option(label: "dodoria60", value: 25),
Option(label: "dodoria10", value: 26),
Option(label: "cell", value: 27),
Option(label: "cell60", value: 28),
Option(label: "cell10", value: 29),
Option(label: "raditz", value: 30),
Option(label: "raditz60", value: 31),
Option(label: "raditz10", value: 32),
Option(label: "nappa", value: 33),
Option(label: "nappa60", value: 34),
Option(label: "nappa10", value: 35),
Option(label: "whis", value: 36),
Option(label: "whis60", value: 37),
Option(label: "whis10", value: 38),
Option(label: "transparent", value: 39),
List<Option<int>> colorOptions = [
...MoonColor.values.map(
(MoonColor color) => Option(label: color.name, value: color.index),
),
Option(label: 'transparent', value: MoonColor.values.length),
];

// The combination of "indexes" and colors in the colorTable() look-up table
// (LUT) is designed to circumvent the issue of a stale closure that would
// occur with the knob otherwise.

/// The look-up table for the color options.
List<Color?> colorTable(BuildContext context) => [
context.moonColors!.piccolo,
context.moonColors!.hit,
context.moonColors!.beerus,
context.moonColors!.goku,
context.moonColors!.gohan,
context.moonColors!.bulma,
context.moonColors!.trunks,
context.moonColors!.goten,
context.moonColors!.popo,
context.moonColors!.jiren,
context.moonColors!.heles,
context.moonColors!.zeno,
context.moonColors!.krillin,
context.moonColors!.krillin60,
context.moonColors!.krillin10,
context.moonColors!.chichi,
context.moonColors!.chichi60,
context.moonColors!.chichi10,
context.moonColors!.roshi,
context.moonColors!.roshi60,
context.moonColors!.roshi10,
context.moonColors!.frieza,
context.moonColors!.frieza60,
context.moonColors!.frieza10,
context.moonColors!.dodoria,
context.moonColors!.dodoria60,
context.moonColors!.dodoria10,
context.moonColors!.cell,
context.moonColors!.cell60,
context.moonColors!.cell10,
context.moonColors!.raditz,
context.moonColors!.raditz60,
context.moonColors!.raditz10,
context.moonColors!.nappa,
context.moonColors!.nappa60,
context.moonColors!.nappa10,
context.moonColors!.whis,
context.moonColors!.whis60,
context.moonColors!.whis10,
...MoonColor.values.map((MoonColor color) => getColor(context, color)),
Colors.transparent,
null,
];
Loading

0 comments on commit 95e1c47

Please sign in to comment.