showColorPickerDialog function

Future<void> showColorPickerDialog({
  1. required BuildContext context,
  2. required String title,
  3. required Color currentColor,
  4. required void onColorChanged(
    1. Color
    ),
})

Shows color picker dialog for selecting a color.

Implementation

Future<void> showColorPickerDialog({
  required BuildContext context,
  required String title,
  required Color currentColor,
  required void Function(Color) onColorChanged,
}) async {
  Color selectedColor = currentColor;

  await showDialog(
    context: context,
    builder: (context) => AlertDialog(
      title: Text(title),
      content: SingleChildScrollView(
        child: BlockPicker(
          pickerColor: currentColor,
          onColorChanged: (color) {
            selectedColor = color;
          },
          availableColors: const [
            Colors.red,
            Colors.pink,
            Colors.purple,
            Colors.deepPurple,
            Colors.indigo,
            Colors.blue,
            Colors.lightBlue,
            Colors.cyan,
            Colors.teal,
            Colors.green,
            Colors.lightGreen,
            Colors.lime,
            Colors.yellow,
            Colors.amber,
            Colors.orange,
            Colors.deepOrange,
            Colors.brown,
            Colors.grey,
            Colors.blueGrey,
          ],
        ),
      ),
      actions: [
        TextButton(
          onPressed: () => Navigator.pop(context),
          child: const Text('Cancel'),
        ),
        ElevatedButton(
          onPressed: () {
            onColorChanged(selectedColor);
            Navigator.pop(context);
          },
          child: const Text('Select'),
        ),
      ],
    ),
  );
}