commonfunctions

A Flutter package that provides a collection of common utility functions for handling date pickers, time pickers, string manipulations, color conversions,first and last dates of month and more.

Features

  • Custom Date Picker: A user-friendly date selection widget with options for both past and future dates.
  • Custom Time Picker: A customizable time selection dialog that formats time in both 12-hour and 24-hour formats.
  • Color Conversion: Convert string-based color codes (e.g., #FF5733) to Flutter Color objects.
  • Date and Time Formatting: Easily format and retrieve the current date and time in various styles using the intl package.
  • String Manipulations: Functions for calculating string length and converting strings to Base64.
  • Email Validation: Validate email addresses using regex patterns.
  • First and Last Dates of Month: Retrieve the first and last dates of a given month, making it easy to manage monthly data.

Implementation Details

  • Custom Date Picker The CustomDatePicker widget allows you to present a date picker dialog to the user. You can specify an initial date, as well as the range of dates that the user can select from (e.g., past or future dates).

  • CustomDatePicker( context: context, initialDate: DateTime.now(), // Initial date displayed in the picker firstDate: DateTime(2000), // Earliest date that can be selected lastDate: DateTime(2100), // Latest date that can be selected onDateSelected: (selectedDate) { print('Selected date: $selectedDate'); }, );

Make sure to pass the context parameter. The onDateSelected callback will return the selected DateTime object

  • Custom Time Picker

The CustomTimePicker provides a time selection dialog with the ability to set the initial time

  • CustomTimePicker( context: context, initialTime: TimeOfDay.now(), // Default time shown when the picker opens onTimeSelected: (selectedTime) { print('Selected time: $selectedTime'); }, );

The onTimeSelected callback provides the selected TimeOfDay object

  • Convert String to Color

The ColorUtils class helps you convert a hexadecimal color string (e.g., #FF5733) into a Flutter Color object.

Color color = ColorUtils.stringToColor("#FF5733");

This method is helpful for applying dynamic colors retrieved from a backend or configuration.

  • Get the Current Date and Time in a Formatted String

You can retrieve and format the current date and time using DateUtils. The formatting follows the intl package's patterns.

String formattedDate = DateUtils.formatDate(DateTime.now(), 'dd-MM-yyyy'); print(formattedDate); // Example output: 27-09-2024

Change the date format string ('dd-MM-yyyy') to suit your requirements

  • Convert Strings to Base64

The StringManipulation class provides a way to convert strings into their Base64-encoded representations.

String originalText = "Hello, Flutter!"; String base64Text = StringManipulation.toBase64(originalText); print(base64Text); // Output: SGVsbG8sIEZsdXR0ZXIh

  • Format Timestamps into 12-hour AM/PM Format

You can convert a DateTime object to a 12-hour AM/PM format string using DateUtils.

String formattedTime = DateUtils.formatTo12Hour(DateTime.now()); print(formattedTime); // Output: 02:30 PM (example)

  • Calculate the Length of a String

The StringManipulation class lets you calculate the length of a string.

int length = StringManipulation.calculateLength("Flutter"); print(length); // Output: 7

  • Validate Email Addresses

The EmailValidator class provides a way to validate email addresses using regex.

bool isValidEmail = EmailValidator.validate("example@domain.com"); print(isValidEmail); // Output: true

Use this function to quickly validate email input in forms.

  • Get the First and Last Dates of Any Given Month

You can retrieve the first and last dates of any specified month using DateUtils.

DateTime selectedMonth = DateTime(2024, 9); // September 2024 DateTime firstDate = DateUtils.getFirstDateOfMonth(selectedMonth); DateTime lastDate = DateUtils.getLastDateOfMonth(selectedMonth);

print('First Date: $firstDate'); // Output: First Date: 2024-09-01 00:00:00.000 print('Last Date: $lastDate'); // Output: Last Date: 2024-09-30 00:00:00.000

This is useful for managing data on a monthly basis.

Example

Here's a comprehensive example that demonstrates the implementation of multiple features from the package:


// Import the commonfunctions package
import 'package:commonfunctions/commonfunctions.dart';

void main() {
  // Example usage of the Custom Date Picker
  CustomDatePicker(
    context: context, // Replace 'context' with your BuildContext
    initialDate: DateTime.now(),
    firstDate: DateTime(2000),
    lastDate: DateTime(2100),
    onDateSelected: (selectedDate) {
      print('Selected date: $selectedDate');
    },
  );

  // Example usage of the Custom Time Picker
  CustomTimePicker(
    context: context, // Replace 'context' with your BuildContext
    initialTime: TimeOfDay.now(),
    onTimeSelected: (selectedTime) {
      print('Selected time: $selectedTime');
    },
  );

  // Convert a string to a color object
  Color color = ColorUtils.stringToColor("#FF5733");
  print('Converted Color: $color');

  // Formatting the current date
  String formattedDate = DateUtils.formatDate(DateTime.now(), 'dd-MM-yyyy');
  print('Formatted Date: $formattedDate');

  // Converting a string to Base64
  String base64Text = StringManipulation.toBase64("Hello, Flutter!");
  print('Base64 Encoded: $base64Text');

  // Validating an email address
  bool isValidEmail = EmailValidator.validate("example@domain.com");
  print('Is valid email: $isValidEmail');

  // Getting the first and last dates of a month
  DateTime selectedMonth = DateTime(2024, 9); // Example: September 2024
  DateTime firstDate = DateUtils.getFirstDateOfMonth(selectedMonth);
  DateTime lastDate = DateUtils.getLastDateOfMonth(selectedMonth);
  print('First Date: $firstDate, Last Date: $lastDate');
}




## Installation

Add this line to your `pubspec.yaml` file under dependencies:
```yaml
dependencies:
  commonfunctions: ^0.0.1

Libraries

commonfunctions