import "package:flutter/material.dart";
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
import "package:inventree/app_colors.dart";

import "package:inventree/l10.dart";
import "package:inventree/preferences.dart";

class InvenTreePurchaseOrderSettingsWidget extends StatefulWidget {
  @override
  _InvenTreePurchaseOrderSettingsState createState() =>
      _InvenTreePurchaseOrderSettingsState();
}

class _InvenTreePurchaseOrderSettingsState
    extends State<InvenTreePurchaseOrderSettingsWidget> {
  _InvenTreePurchaseOrderSettingsState();

  bool poEnable = true;
  bool poShowCamera = true;
  bool poConfirmScan = true;

  @override
  void initState() {
    super.initState();

    loadSettings();
  }

  Future<void> loadSettings() async {
    poEnable = await InvenTreeSettingsManager().getBool(INV_PO_ENABLE, true);
    poShowCamera =
        await InvenTreeSettingsManager().getBool(INV_PO_SHOW_CAMERA, true);
    poConfirmScan =
        await InvenTreeSettingsManager().getBool(INV_PO_CONFIRM_SCAN, true);

    if (mounted) {
      setState(() {});
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(L10().purchaseOrderSettings),
          backgroundColor: COLOR_APP_BAR,
        ),
        body: Container(
            child: ListView(children: [
          ListTile(
            title: Text(L10().purchaseOrderEnable),
            subtitle: Text(L10().purchaseOrderEnableDetail),
            leading: Icon(TablerIcons.shopping_cart),
            trailing: Switch(
              value: poEnable,
              onChanged: (bool value) {
                InvenTreeSettingsManager().setValue(INV_PO_ENABLE, value);
                setState(() {
                  poEnable = value;
                });
              },
            ),
          ),
          ListTile(
            title: Text(L10().purchaseOrderShowCamera),
            subtitle: Text(L10().purchaseOrderShowCameraDetail),
            leading: Icon(TablerIcons.camera),
            trailing: Switch(
              value: poShowCamera,
              onChanged: (bool value) {
                InvenTreeSettingsManager().setValue(INV_PO_SHOW_CAMERA, value);
                setState(() {
                  poShowCamera = value;
                });
              },
            ),
          ),
          ListTile(
            title: Text(L10().purchaseOrderConfirmScan),
            subtitle: Text(L10().purchaseOrderConfirmScanDetail),
            leading: Icon(TablerIcons.barcode),
            trailing: Switch(
              value: poConfirmScan,
              onChanged: (bool value) {
                InvenTreeSettingsManager().setValue(INV_PO_CONFIRM_SCAN, value);
                setState(() {
                  poConfirmScan = value;
                });
              },
            ),
          )
        ])));
  }
}