ids_material_sdk 3.3.0 copy "ids_material_sdk: ^3.3.0" to clipboard
ids_material_sdk: ^3.3.0 copied to clipboard

Fast Networking,Cache,Save server cost,IDS Material SDK,MultiselectDropDown,DropDown,Custom,Networking Services,Theme,Field,Productivity,Widget,Custom Widget,tools,IDS

example/main.dart

import 'package:flutter/material.dart';
import 'package:ids_material_sdk/ids_api_manager.dart';
import 'package:ids_material_sdk/ui/widget/fields/ids_field_title.dart';
import 'package:ids_material_sdk/ui/widget/fields/ids_text_area_title.dart';
import 'package:ids_material_sdk/ui/widget/fields/ids_uitextfield.dart';
import 'package:ids_material_sdk/ui/widget/ids_dropdown.dart';
import 'package:ids_material_sdk/ui/widget/ids_dropdown_string.dart';
import 'package:ids_material_sdk/ui/widget/ids_dropdown_title.dart';
import 'package:ids_material_sdk/ui/widget/ids_multiselect_drop_down.dart';
import 'package:ids_material_sdk/ui/widget/theme.dart';
import 'package:ids_material_sdk/utilities/ids_helper.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  MyHomePageState createState() => MyHomePageState();
}

class MyHomePageState extends State<MyHomePage> {
  final TextEditingController _editingController = TextEditingController();
  List<String> selectedJobRole = [];
  List<String> jobRole = []; // Placeholder for job role list

  @override
  void initState() {
    super.initState();
    // Example network request when the widget initializes
    makeApiCalls();
  }

  // Example of form data based API call
  void makeApiCalls() {
    var request = {"UserName": "ddd", "Password": "ddd"};
    // Example: Upload form data (POST)
    final Future<Map<String, dynamic>> apiResponse = IDSApiManager()
        .uploadFormData("http://ids.com/api/v1/login", request,
            "local-url-path-of-file", {"Connection": "keep-alive"});
    apiResponse.then((response) {
      IDSHelper.debugJSON(response);
    });

    // Example: POST form data (returns array)
    /**
     * Example code of networking api. use case is that when api return the array response. use the below sample code snippet in your project, This code snipped is for form data based api.
     */
    final Future<List<dynamic>> apiResponse1 = IDSApiManager()
        .postFormDataInBgArray("http://ids.com/api/v1/login", request,
            {"Connection": "keep-alive"});
    apiResponse1.then((response) {
      IDSHelper.debugJSON(response);
    });

    // Example: Get request
    /**
     * Example code of networking api. use the below sample code snippet in your project, This code snipped is for get method.
     */
    final Future<Map<String, dynamic>> apiResponse2 =
        IDSApiManager().getInBg("http://ids.com/api/v1/getUsers", {});
    apiResponse2.then((response) {
      IDSHelper.debugJSON(response);
    });

    // Example: Upload file with parameters
    /**
     * Example code of networking api. use the below sample code snippet in your project, This code snipped is upload the file with parameters.
     */
    var request2 = {"UserName": "ddd", "Password": "ddd"};
    final Future<Map<String, dynamic>> apiResponse3 = IDSApiManager()
        .uploadFormData("http://ids.com/api/v1/uploadDocuments", request2,
            "local-url-path-of-file", {"Connection": "keep-alive"});
    apiResponse3.then((response) {
      IDSHelper.debugJSON(response);
    });

    // Example: POST JSON payload
    /**
     * Example code of networking api. use the below sample code snippet in your project, This code snipped is for json body payload based api.
     */
    var request3 = {"UserName": "ddd", "Password": "ddd"};
    final Future<Map<String, dynamic>> apiResponse4 = IDSApiManager().postInBg(
        "http://ids.com/api/v1/login", request3, {"Connection": "keep-alive"});
    apiResponse4.then((response) {
      IDSHelper.debugJSON(response);
    });

    /**
     * Example code of networking api. use the below sample code snippet in your project, This code snipped is for form data based api.
     */
    var request4 = {"UserName": "ddd", "Password": "ddd"};
    final Future<Map<String, dynamic>> apiResponse5 = IDSApiManager()
        .postFormDataInBg("http://ids.com/api/v1/login", request4,
            {"Connection": "keep-alive"});
    apiResponse5.then((response) => {IDSHelper.debugJSON(response)});
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('IDS Material SDK Example'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            // TextField Example
            /**
             * Example code of texfield. use the below sample code snippet in your project.
             */
            IDSUITextField(
              controller: _editingController,
              hintText: "Password",
              prefixIcon: Icons.lock,
              prefixIconColor: Colors.grey,
              hintTextColor: Colors.grey,
              textColor: Colors.black,
              borderColor: Colors.grey,
              focusedBorderColor: Colors.deepOrangeAccent,
              validator: (value) {
                if (value == null || value.isEmpty) {
                  return 'Password is required';
                }
                return null;
              },
            ),
            const SizedBox(height: 16),
            // MultiSelect DropDown Example
            IDSMultiSelectDropDown(
              limit: 3,
              onChanged: (List<String> selected) {
                setState(() {
                  selectedJobRole = selected;
                });
              },
              options: jobRole,
              selectedValues: selectedJobRole,
              onLimitMessage: (limit) {
                // Show toast or snackbar for limit reached
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text("You can only select $limit items")),
                );
              },
              whenEmpty: 'Select Job Role',
            ),
            const SizedBox(height: 16),

            ///IDSFieldTitle code snippet
            IDSFieldTitle(
              title: "Descriptions",
              controller: _editingController,
              hintText: "bill entry",
              hintTextColor: Colors.grey,
              textColor: Colors.black,
              borderColor: Colors.grey,
              focusedBorderColor: Colors.red,
              circularRadius: 8.0,
              validator: (value) {
                if (value == null || value.isEmpty) {
                  return "Description cannot be empty";
                }
                return null;
              },
            ),

            ///IDSDropdownTitle code snippet
            IDSDropdownTitle(
                title: 'DISPATCH MODE',
                selectedValue: "selected value",
                onTap: () {
                  debugPrint("callback");
                }),

            /// IDSTextAreaTitle code snippet
            kSizeBox10,
            IDSTextAreaTitle(
                title: "Descriptions *",
                height: 160,
                controller: _editingController,
                hintText: "Enter Description",
                hintTextColor: Colors.grey,
                textColor: Colors.black,
                borderColor: Colors.grey,
                focusedBorderColor: Colors.red,
                circularRadius: 8.0,
                validator: (value) {
                  if (value == null || value.isEmpty) {
                    return "Description cannot be empty";
                  }
                  return null;
                },
                maxLines: 20),

            // Dropdown Button Example
            ElevatedButton(
              onPressed: () {
                navigateToIDSDropDown(context, 1, 'jobRole', jobRole);
              },
              child: const Text('Show Dropdown'),
            ),
          ],
        ),
      ),
    );
  }

  // Method to navigate to IDSDropDown dialog
  void navigateToIDSDropDown(
      BuildContext context, int code, String key, List<dynamic>? array) {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return Center(
          child: Dialog(
            shape: const RoundedRectangleBorder(
              borderRadius: BorderRadius.all(Radius.circular(10)),
            ),
            child: IDSDropDown(
              appBarBg: Colors.red,
              requestedCode: code,
              jsonKeyName: key,
              dropDownArray: array,
              callback: (requestedCode, json) {
                if (requestedCode == 1) {
                  // Handle selection logic here
                  // Example:
                  // setState(() {
                  //   selectedJobRole = json["name"];
                  // });
                }
              },
            ),
          ),
        );
      },
    );
  }

  // Method to navigate to IDSDropDownString dialog
  void navigateToIDSDropDownString(
      BuildContext context, int code, List<String> array) {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return Center(
          child: Dialog(
            shape: const RoundedRectangleBorder(
              borderRadius: BorderRadius.all(Radius.circular(10)),
            ),
            child: SizedBox(
              height: MediaQuery.of(context).size.width,
              child: IDSDropDownString(
                appBarBg: Colors.red,
                requestedCode: code,
                dropDownArray: array,
                callback: (requestedCode, value) {
                  if (requestedCode == 1) {
                    // Handle string selection logic
                  }
                },
              ),
            ),
          ),
        );
      },
    );
  }
}
26
likes
0
points
211
downloads

Publisher

verified publisherivandigitalsolutions.com

Weekly Downloads

Fast Networking,Cache,Save server cost,IDS Material SDK,MultiselectDropDown,DropDown,Custom,Networking Services,Theme,Field,Productivity,Widget,Custom Widget,tools,IDS

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, flutter_html, html_unescape, http, logger, states_rebuilder, xml

More

Packages that depend on ids_material_sdk