imageUploadStory top-level property
Story
imageUploadStory
getter/setter pair
Implementation
Story imageUploadStory = Story(
name: 'Image Upload',
builder: (context) {
final imageShape = context.knobs.options<ImageContainerShape>(
label: 'Image Shape',
initial: ImageContainerShape.square,
options: ImageContainerShape.values
.map((shape) => Option(label: shape.name, value: shape))
.toList(),
);
final uploadImageWidth = context.knobs.slider(
label: 'Upload Image Width',
initial: 195.0,
min: 100.0,
max: 300.0,
);
final uploadImageHeight = context.knobs.slider(
label: 'Upload Image Height',
initial: 195.0,
min: 100.0,
max: 300.0,
);
final imageWidth = context.knobs.slider(
label: 'Image Width',
initial: 195.0,
min: 100.0,
max: 300.0,
);
final imageHeight = context.knobs.slider(
label: 'Image Height',
initial: 185.0,
min: 100.0,
max: 300.0,
);
final maxImages = context.knobs
.slider(
label: 'Max Images',
initial: 5.0,
min: 1.0,
max: 10.0,
)
.toInt();
final maxImageDisplayed = context.knobs.sliderInt(
label: 'Max Image Displayed',
initial: 1,
min: 1,
max: 10,
);
final maxWidth = context.knobs.slider(
label: 'Max Width',
initial: 400.0,
min: 200.0,
max: 600.0,
);
final uploadIcon = context.knobs.options<IconData>(
label: 'Upload Icon',
initial: Icons.camera_alt_outlined,
options: [
Option(label: 'Camera', value: Icons.camera_alt_outlined),
Option(label: 'Gallery', value: Icons.photo_library),
],
);
final uploadIconColor = context.knobs.options<Color>(
label: 'Upload Icon Color',
options: [
Option(label: 'Grey', value: Colors.grey),
Option(label: 'Black', value: Colors.black),
Option(label: 'Red', value: Colors.red),
],
initial: Colors.grey,
);
final uploadIconSize = context.knobs.slider(
label: 'Upload Icon Size',
initial: 40.0,
min: 20.0,
max: 60.0,
);
final text = context.knobs.text(
label: 'Upload Text',
initial: 'Add image',
);
final textColor = context.knobs.options<Color>(
label: 'Text Color',
options: [
Option(label: 'Grey', value: Colors.grey),
Option(label: 'Black', value: Colors.black),
Option(label: 'Red', value: Colors.red),
],
initial: Colors.grey,
);
final uploadedImageTopRightIcon = context.knobs.options<IconData>(
label: 'Top Right Icon',
initial: Icons.close,
options: [
Option(label: 'Close', value: Icons.close),
Option(label: 'Remove', value: Icons.delete),
],
);
final uploadedImageTopRightIconColor = context.knobs.options<Color>(
label: 'Top Right Icon Color',
options: [
Option(label: 'Black', value: Colors.black),
Option(label: 'Red', value: Colors.red),
Option(label: 'Green', value: Color(0xFF4CAF50)),
],
initial: Colors.black,
);
final displayImageWithCount = context.knobs
.boolean(label: 'Display Image With Count', initial: false);
final removeOnlyRecentImage = context.knobs
.boolean(label: 'Remove Only Recent Image', initial: false);
return Center(
child: DDSImageUpload(
imageShape: imageShape,
imageWidth: imageWidth,
uploadImageHeight: uploadImageHeight,
uploadImageWidth: uploadImageWidth,
imageHeight: imageHeight,
maxImages: maxImages,
maxWidth: maxWidth,
uploadIcon: uploadIcon,
uploadIconColor: uploadIconColor,
uploadIconSize: uploadIconSize,
uploadText: text,
textColor: textColor,
maxImageDisplayed: maxImageDisplayed,
removeOnlyRecentImage: removeOnlyRecentImage,
displayImageWithCount: displayImageWithCount,
uploadedImageTopRightIcon: uploadedImageTopRightIcon,
uploadedImageTopRightIconColor: uploadedImageTopRightIconColor,
),
);
},
);