fileUploadStory top-level property

Story fileUploadStory
getter/setter pair

Implementation

Story fileUploadStory = Story(
  name: 'File Upload',
  builder: (context) {
    final title = context.knobs.text(label: 'Title', initial: 'Upload Files');
    final description = context.knobs.text(
        label: 'Descriptions', initial: 'Press button and upload your file');
    final buttonText =
        context.knobs.text(label: 'Button Text', initial: 'Browse File');
    final errorMessage = context.knobs
        .text(label: 'Error Uploading File', initial: 'Error Uploading File');
    final uploadURL = context.knobs.text(
        label: 'Upload URL',
        initial: 'https://httpbin.org/post');
    final allowedExtensions = context.knobs
        .text(
          label: 'Allowed Extensions',
          initial: 'pdf, svg, jpg',
        )
        .split(',')
        .map((ext) => ext.trim())
        .toList();
    final allowMultipleFiles =
        context.knobs.boolean(label: 'Allow Multiple Files', initial: false);
    final fileUploadVariant = context.knobs.options(
      label: 'File Upload Variant',
      options: [
        Option(label: 'Primary', value: FileUploadVariant.primary),
        Option(label: 'Secondary', value: FileUploadVariant.secondary),
      ],
      initial: FileUploadVariant.secondary,
    );

    return Container(
      width: MediaQuery.of(context).size.width * 0.8,
      child: DDSFileUpload(
        uploadUrl: uploadURL,
        title: title,
        description: description,
        errorMessage: errorMessage,
        buttonText: buttonText,
        variant: fileUploadVariant,
        allowMultipleFiles: allowMultipleFiles,
        allowedExtensions: allowedExtensions,
        displayFilesTitle: 'Uploaded',
      ),
    );
  },
);