initThemeConfig method

  1. @override
void initThemeConfig(
  1. String configId, {
  2. BaseCommonConfig? currentLevelCommonConfig,
})
override

举例: ① 尝试获取最近的配置 topRadius 若配不为 null,直接使用该配置. ② topRadius 若为 null,尝试使用 全局配置中的配置 BrnFormItemConfig. ③ 如果全局配置中的配置同样为 null 则根据 configId 取出全局配置。 ④ 如果没有配置 configId 的全局配置,则使用 Bruno 默认的配置

Implementation

@override
void initThemeConfig(
  String configId, {
  BaseCommonConfig? currentLevelCommonConfig,
}) {
  super.initThemeConfig(
    configId,
    currentLevelCommonConfig: currentLevelCommonConfig,
  );

  /// 用户全局form组件配置
  FormItemConfig formItemThemeData =
      BaseThemeConfig.instance.getConfig(configId: configId).formItemConfig;

  _backgroundColor ??= formItemThemeData.backgroundColor;
  _titlePaddingSm ??= formItemThemeData.titlePaddingSm;
  _titlePaddingLg ??= formItemThemeData.titlePaddingLg;
  _optionSelectedTextStyle = formItemThemeData.optionSelectedTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.brandPrimary,
      fontSize: commonConfig.fontSizeSubHead,
    ).merge(_optionSelectedTextStyle),
  );
  _optionTextStyle = formItemThemeData.optionTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.colorTextBase,
      fontSize: commonConfig.fontSizeSubHead,
    ).merge(_optionTextStyle),
  );
  _headTitleTextStyle = formItemThemeData.headTitleTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.colorTextBase,
      fontSize: commonConfig.fontSizeHead,
    ).merge(_headTitleTextStyle),
  );
  _errorPadding ??= EdgeInsets.only(
    left: commonConfig.hSpacingLg,
    right: formItemThemeData.errorPadding.right,
    top: commonConfig.vSpacingXs,
    bottom: formItemThemeData.errorPadding.bottom,
  );
  _subTitlePadding ??= EdgeInsets.only(
    left: commonConfig.hSpacingLg,
    right: formItemThemeData.subTitlePadding.right,
    top: commonConfig.vSpacingXs,
    bottom: formItemThemeData.subTitlePadding.bottom,
  );
  _formPadding ??= EdgeInsets.only(
    left: formItemThemeData.formPadding.left,
    right: commonConfig.hSpacingLg,
    top: commonConfig.vSpacingLg,
    bottom: commonConfig.vSpacingLg,
  );
  _tipsTextStyle = formItemThemeData.tipsTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.colorTextSecondary,
      fontSize: commonConfig.fontSizeBase,
    ).merge(_tipsTextStyle),
  );
  _disableTextStyle = formItemThemeData.disableTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.colorTextDisabled,
      fontSize: commonConfig.fontSizeSubHead,
    ).merge(_disableTextStyle),
  );
  _contentTextStyle = formItemThemeData.contentTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.colorTextBase,
      fontSize: commonConfig.fontSizeSubHead,
    ).merge(_contentTextStyle),
  );
  _hintTextStyle = formItemThemeData.hintTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.colorTextHint,
      fontSize: commonConfig.fontSizeSubHead,
    ).merge(_hintTextStyle),
  );
  _titleTextStyle = formItemThemeData.titleTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.colorTextBase,
      fontSize: commonConfig.fontSizeSubHead,
    ).merge(_titleTextStyle),
  );
  _subTitleTextStyle = formItemThemeData.subTitleTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.colorTextSecondary,
      fontSize: commonConfig.fontSizeCaption,
    ).merge(_subTitleTextStyle),
  );
  _errorTextStyle = formItemThemeData.errorTextStyle.merge(
    BaseTextStyle(
      color: commonConfig.brandError,
      fontSize: commonConfig.fontSizeCaption,
    ).merge(_errorTextStyle),
  );
  _optionsMiddlePadding ??= formItemThemeData.optionsMiddlePadding;
}