snippet_coder_utils 1.0.15 copy "snippet_coder_utils: ^1.0.15" to clipboard
snippet_coder_utils: ^1.0.15 copied to clipboard

SnippetCoderUtils is a Utility package built with Flutter SDK to make Flutter development easier and more enjoyable than ever.

snippetcoder_utils #

SnippetCoderUtils is a Utility package built with Flutter SDK to make Flutter development easier and more enjoyable than ever.

pub package

Features #

  • FormHelper Utility to create custom UI TextBox, DropDown, Buttons.
  • DataTable Utility with Generic Collection, Sorting, Edit, Delete & Custom Action Button
  • ProgressHUD (Heads Up Display)
  • Hex Color Converter.
  • Multiple Image Picker with Add and Remove image.

Install #

Add this to your pubspec.yaml file:

dependencies:
  snippetcoder_utils: ^1.0.13

Usage #

FormHelper #

This utility will be used to create custom UI TextBox, DropDown, Buttons.

FormHelper - inputFieldWidget

 FormHelper.inputFieldWidget(
    context,
    "host",
    "Host URL",
    (onValidateVal) {
    if (onValidateVal.isEmpty) {
        return 'Host URL can\'t be empty.';
    }

    return null;
    },
    (onSavedVal) => {
        this.loginModel.host = onSavedVal,
    },
    initialValue: this.loginModel.host,
    obscureText: false,
    borderFocusColor: Theme.of(context).primaryColor,
    prefixIconColor: Theme.of(context).primaryColor,
    borderColor: Theme.of(context).primaryColor,
),

FormHelper.submitButton(
    "Login",
    () {
    
    },
    btnColor: Theme.of(context).primaryColor,
    borderColor: Theme.of(context).primaryColor,
    txtColor: Colors.black,
),

FormHelper - inputFieldWidgetWithLabel

FormHelper.inputFieldWidgetWithLabel(
    context,    
    "name",
    "Category Name",
    "",
    (onValidateVal) {
    if (onValidateVal.isEmpty) {
        return 'Category Name can\'t be empty.';
    }

    return null;
    },
    (onSavedVal) => {
        this.categoryModel.name = onSavedVal,
    },
    initialValue: this.categoryModel.name,
    obscureText: false,
    borderFocusColor: Theme.of(context).primaryColor,
    prefixIconColor: Theme.of(context).primaryColor,
    borderColor: Theme.of(context).primaryColor,
    borderRadius: 10,
    paddingLeft: 0,
    paddingRight: 0,
    showPrefixIcon: true,
    prefixIcon: Icon(Icons.web),
    onChange: (val) {},
),
FormHelper.inputFieldWidgetWithLabel(
    context,   
    "description",
    "Category Description",
    "",
    (onValidateVal) {
    return null;
    },
    (onSavedVal) => {
        this.categoryModel.description = onSavedVal,
    },
    initialValue: this.categoryModel.description,
    obscureText: false,
    borderFocusColor: Theme.of(context).primaryColor,
    prefixIconColor: Theme.of(context).primaryColor,
    borderColor: Theme.of(context).primaryColor,
    borderRadius: 10,
    paddingLeft: 0,
    paddingRight: 0,
    showPrefixIcon: true,
    prefixIcon: Icon(Icons.web),
    isMultiline: true,
    onChange: (val) {},
),

Constructors Parameters

Parameter Type Optional Description
context BuildContext NO Pass the current build context.
keyName String NO Key for the textbox, should be unique for every textbox.
labelName String NO LabelName will be used if using inputFieldWidgetWithLabel method to show label with TextBox.
hintText String NO Used to show placeholder in textbox
onValidate Function(String) NO Fired on textbox Validation
onSaved Function(String) NO Fires on form Saved.
onChange Function(String) YES Fires when textbox value changed.
initialValue String YES Used for showing initial value in textbox.
obscureText bool YES Used for showing or hiding text. Default value = false
fontSize double YES Used for TextFormField font size. Default value = 18
hintFontSize double YES Used for TextFormField hint font size. Default value = 15
paddingLeft double YES Used for TextFormField Container padding left. Default value = 20
paddingRight double YES Used for TextFormField Container padding right. Default value = 20
paddingTop double YES Used for TextFormField Container padding top. Default value = 0
paddingBottom double YES Used for TextFormField Container padding bottom. Default value = 0
suffixIcon Widget YES Used for TextFormField SuffixIcon Widget
borderRadius double YES Used for TextFormField Border Radius. Default value = 30
borderColor Color YES Used for TextFormField Border Color. Default value = Colors.redAccent
borderFocusColor Color YES Used for TextFormField Border Focus Color. Default value = Colors.redAccent
showPrefixIcon bool YES Used for Show/Hide Prefix Icon. Default value = Colors.true
prefixIcon Icon YES Used to show Prefix Icon
prefixIconColor Color YES Used for PrefixIcon Color. Default value = Colors.redAccent
prefixIconPaddingLeft double YES Used for PrefixIcon Padding Left. Default value = 30
prefixIconPaddingRight double YES Used for PrefixIcon Padding Right. Default value = 10
prefixIconPaddingTop double YES Used for PrefixIcon Padding Top. Default value = 0
prefixIconPaddingBottom double YES Used for PrefixIcon Padding Bottom. Default value = 0
isMultiline bool YES Used for making TextFormField Multiline. Default value = false
textColor Color YES Used for TextFormField Text Color. Default value = Colors.black
hintColor Color YES Used for TextFormField Hint Color. Default value = Colors.black
validationColor Color YES Used for TextFormField Validations Color. Default value = Colors.redAccent
borderWidth double YES Used for Border Width. Default value = 2
focusedBorderWidth double YES Used for Focus Border Width. Default value = 2
enabledBorderWidth double YES Used for Enabled Border Width. Default value = 1
contentPadding double YES Used for Content Padding. Default value = 6
multilineRows double YES Used for Multiline Texbox no. of Rows. Default value = 4
isNumeric double YES Used for Numeric Texbox for showing numeric keyboard. Default value = false
backgroundColor Color YES Used for Texbox background color. Default value = Colors.transparent
isReadonly bool false Used for Texbox readonly. Default value = false

FormHelper - dropDownWidget

 List<dynamic> productTypesList = [];
 this.productTypesList.add({"id": "simple", "name": "Simple"});
 this.productTypesList.add({"id": "variable", "name": "Variable"});

 FormHelper.dropDownWidget(
    context,
    "Select Product Type",
    "",
    this.productTypesList,
    (onChangedVal) {
        this.requestModel.productType = onChangedVal! ?? "";
    },
    (onValidateVal) {
        if (onValidateVal == null) {
            return 'Please Select Product Type';
        }

        return null;
    },
    borderFocusColor: Theme.of(context).primaryColor,
    borderColor: Theme.of(context).primaryColor,
    borderRadius: 10,
),

FormHelper - dropDownWidgetWithLabel

 List<dynamic> productTypesList = [];
 this.productTypesList.add({"val": "1", "label": "Simple"});
 this.productTypesList.add({"val": "2", "label": "Variable"});

 FormHelper.dropDownWidgetWithLabel(
    context,
    "Product Type"
    "Select Product Type",
    "",
    this.productTypesList,
    (onChangedVal) {
        this.requestModel.productType = onChangedVal! ?? "";
    },
    (onValidateVal) {
        if (onValidateVal == null) {
            return 'Please Select Product Type';
        }

        return null;
    },
    borderFocusColor: Theme.of(context).primaryColor,
    borderColor: Theme.of(context).primaryColor,
    borderRadius: 10,
    optionValue: "val",
    optionLabel: "label"
),

Constructors Parameters

Parameter Type Optional Description
context BuildContext NO Pass the current build context.
labelName String NO LabelName will be used if using dropDownWidgetWithLabel method to show label with Dropdown.
hintText String NO Used to show Hint Text in Dropdown
value Dynamic NO Used for showing initial value in Dropdown.
lstData List<dynamic> NO Dropdown list Data
onChanged Function(String) YES Fires when dropdown value changed.
onValidate Function(String) NO Fired on dropdown Validation
hintFontSize double YES Used for DropdownField hint font size. Default value = 15
borderColor Color YES Used for DropdownField Border Color. Default value = Colors.redAccent
borderRadius double YES Used for DropdownField Border Radius. Default value = 30
borderFocusColor Color YES Used for DropdownField Border Focus Color. Default value = Colors.redAccent
paddingLeft double YES Used for DropdownField Container padding left. Default value = 20
paddingRight double YES Used for DropdownField Container padding right. Default value = 20
paddingTop double YES Used for DropdownField Container padding top. Default value = 0
paddingBottom double YES Used for DropdownField Container padding bottom. Default value = 0
optionValue String YES Used for DropdownField Option Value Column Mapping from Data Collection. Default value = id
optionLabel String YES Used for DropdownField Option Label Column Mapping from Data Collection. Default value = name
contentPadding double YES Used for Content Padding. Default value = 6
validationColor Color YES Used for TextFormField Validations Color. Default value = Colors.redAccent
textColor Color YES Used for TextFormField Text Color. Default value = Colors.black
hintColor Color YES Used for TextFormField Hint Color. Default value = Colors.black
borderWidth double YES Used for Border Width. Default value = 2
focusedBorderWidth double YES Used for Focus Border Width. Default value = 2
enabledBorderWidth double YES Used for Enabled Border Width. Default value = 1
suffixIcon Widget YES Used for TextFormField SuffixIcon Widget
prefixIcon Icon YES Used to show Prefix Icon
showPrefixIcon bool YES Used for Show/Hide Prefix Icon. Default value = Colors.true
prefixIconColor Color YES Used for PrefixIcon Color. Default value = Colors.redAccent
prefixIconPaddingLeft double YES Used for PrefixIcon Padding Left. Default value = 30
prefixIconPaddingRight double YES Used for PrefixIcon Padding Right. Default value = 10
prefixIconPaddingTop double YES Used for PrefixIcon Padding Top. Default value = 0
prefixIconPaddingBottom double YES Used for PrefixIcon Padding Bottom. Default value = 0

ListUtils #

This utility will be used to create DataTable list with Generic Collection, Sorting, Edit, Delete & Custom Action Button

 return ListUtils.buildDataTable<CategoryModel>(
    context,
    ["Name", "Description", ""],
    ["name", "description", ""],
    sortAscending,
    sortColumnIndex,
    model.categoriesList,
    (CategoryModel onEditVal) {
        print(onEditVal.name);
    },
    (CategoryModel onRemoveVal) {
        print(onRemoveVal.id);
    },
    onSort: (columnIndex, columnName, ascending) {
        print(columnName);
        print(ascending);
    },
    headingRowColor: Theme.of(context).primaryColor,
    actionWidget: Icon(
       Icons.add,
       color: Colors.red,
    ),
    onActionTap: (CategoryModel model) {
        print(model.id);
    },
);

Constructors Parameters

Parameter Type Optional Description
context BuildContext NO Pass the current build context.
columns List<String> NO Pass the column name in string array.
fields List<String> NO Pass the field name in string array.
sortAscending bool NO If sorting in ascending order pass true else false.
sortColumnIndex number NO Column index of sorting based on.
listOfData dynamic NO DataSource for the DataTable list.
onEditTap Function(dyanmic) NO Fires when an edit is tapped and model will be return.
onDeleteTap Function(dyanmic) NO Fires when an delete is tapped and model will be return.
onSort Function(String, String, String) YES Fires when an column is click for sorting and it will return columnIndex, columnName, ascending.
headingRowHeight number YES Used for header row height. Default value = 45
headingRowColor Color YES Used for header row color. Default value = Colors.redAccent
columnTextFontSize double YES Used for column Text font size. Default value = 15
columnTextBold bool YES Used for column Text bold. Default value = true
columnSpacing bool YES Used for column spacing. Default value = 30
actionWidget Widget YES Used for adding custom action button just like edit and delete icon.
onActionTap Function(dyanmic) YES Fires when an custom action button is tapped and model will be return.
actionEditWidget bool YES Used for making any custom Edit Widget
actionDeleteWidget bool YES Used for making any custom Delete Widget

ProgressHUD (Heads Up Display) #

It's helpful to give the user an indication that content is being loaded while the app sends a network request to get new data.

When we start any network call we will set isApiCallProcess = true, when the network call completed we will set back isApiCallProcess = false

bool isApiCallProcess = false;
return Scaffold(
    appBar: _buildAppBar(),
    body: ProgressHUD(
        child: pageUI(),
        inAsyncCall: isApiCallProcess,
        opacity: 0.3,
    ),
);

Constructors Parameters

Parameter Type Description
child Widget Assign the widget need to show.
inAsyncCall bool Variable used to show or hide loader.
opacity double Used for transparency of background.

HexColor #

This will be used to convert any HEX color to Flutter Color.

color: HexColor("#FC4136"),

Constructors Parameters

Parameter Type Description
hexColor String HexCode for conversion.

MultiImagePicker #

This widget will be used to show multi select images using Camera or Gallery.

To get updated images collection, you can use the onImageChanged parameter.

List<Object> images = [];

MultiImagePicker(
    totalImages: 6,
    imageSource: ImagePickSource.camera,
    initialValue: this.productModel.images.map((e) => e.src).toList(), //for showing images from collection
    onImageChanged: (images) {
        this.images = images;
    },
    imageType: ImageType.list,
    addImageWidget: Card(
            child: SizedBox(
                width: 100,
                child: Center(
                child: SizedBox(
                    width: 50,
                    height: 50,
                    child: Image.asset("assets/images/add-photo.png",),
                    ),
                ),
            ),
        ),
    ),
),

Constructors Parameters

Parameter Type Description
totalImages number Set the total number of images to be show.
imageSource ImagePickSource Change the Image Source. Can be either  ImagePickSource.camera or ImagePickSource.gallery.
initialValue List<String> Used for showing default images.
onImageChanged Function(List<Object>) Fires when an image is added or deleted.

Donate #

If you like my work, you can support me buying a cup of ☕

Code and documentation Copyright 2021 SnippetCoder. Code released under the Apache License. Docs released under Creative Commons.

156
likes
110
pub points
94%
popularity

Publisher

verified publishersnippetcoder.com

SnippetCoderUtils is a Utility package built with Flutter SDK to make Flutter development easier and more enjoyable than ever.

Homepage

Documentation

API reference

License

MIT (LICENSE)

Dependencies

flutter, image_picker

More

Packages that depend on snippet_coder_utils