drawer_configs.dart 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import 'package:equatable/equatable.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:json_annotation/json_annotation.dart';
  4. part 'drawer_configs.g.dart';
  5. @JsonSerializable()
  6. class DrawerConfigsModel extends Equatable {
  7. @JsonKey(name: 'configs')
  8. final List<DrawerConfig> configs;
  9. @JsonKey(name: 'extend_configs')
  10. final List<DrawerConfig> extendConfigs;
  11. factory DrawerConfigsModel.fromJson(Map<String, dynamic> srcJson) =>
  12. _$DrawerConfigsModelFromJson(srcJson);
  13. DrawerConfigsModel({this.configs, this.extendConfigs});
  14. Map<String, dynamic> toJson() => _$DrawerConfigsModelToJson(this);
  15. @override
  16. List<Object> get props => [configs, extendConfigs];
  17. }
  18. @JsonSerializable()
  19. class DrawerConfig extends Equatable {
  20. @JsonKey(name: 'is_divider')
  21. final bool isDivider;
  22. @JsonKey(name: 'text')
  23. final String text;
  24. final IconData iconData;
  25. @JsonKey(name: 'asset_icon')
  26. final String assetIcon;
  27. @JsonKey(name: 'url_icon')
  28. final String urlIcon;
  29. DrawerConfig({
  30. this.isDivider: false,
  31. this.text,
  32. this.iconData,
  33. this.assetIcon,
  34. this.urlIcon,
  35. });
  36. factory DrawerConfig.fromJson(Map<String, dynamic> srcJson) =>
  37. _$DrawerConfigFromJson(srcJson);
  38. Map<String, dynamic> toJson() => _$DrawerConfigToJson(this);
  39. @override
  40. List<Object> get props => [
  41. isDivider,
  42. text,
  43. iconData,
  44. assetIcon,
  45. urlIcon
  46. ];
  47. }