# Source: TextStyle.js

    /*
     * @Description: In User Settings Edit
     * @Author: xiaoying
     * @Date: 2019-09-10 17:32:54
     * @LastEditTime: 2019-09-17 11:30:23
     * @LastEditors: mayuanye
     */
    import { NativeModules } from 'react-native';
    let TS = NativeModules.JSTextStyle;

    /**
     * @class TextStyle
     * @description  文本样式
     */
    export default class TextStyle {
      /**
       * 构造一个新的TextStyle对象，可通过无参或有参构造。
       * 有参构造的参数为：文本颜色（String, eg:'rgba(128, 128, 128, 128)'）、文本大小（float类型的Number）
       *
       * @memberof TextStyle
       * @returns {Promise<TextStyle>}
       */
      async createObj() {
        try {
          if (
            typeof arguments[0] === 'string' &&
            typeof arguments[1] === 'number'
          ) {
            let { TextStyleId } = await TS.createObjByCS(
              arguments[0],
              arguments[1]
            );

            let textStyle = new TextStyle();
            textStyle._MGTextStyleId = TextStyleId;
            return textStyle;
          } else {
            let { TextStyleId } = await TS.createObj();
            let textStyle = new TextStyle();

            textStyle._MGTextStyleId = TextStyleId;
            return textStyle;
          }
        } catch (e) {
          console.error(e);
        }
      }

      // /**
      //  * 通过文本颜色、大小构造一个新的TextStyle对象
      //  *
      //  * @memberof TextStyle
      //  * @param {Number} color 文本颜色（int类型的Number）
      //  * @param {Number} size  文本大小（float类型的Number）
      //  * @returns {Promise<TextStyle>}
      //  */
      // async createObjByCS(color, size){
      //     try {
      //         var {TextStyleId} = await TS.createObjByCS(color, size);
      //         var textStyle = new TextStyle();
      //         textStyle._MGTextStyleId = TextStyleId;
      //         return textStyle;
      //     } catch (e) {
      //         console.error(e);
      //     }
      // }

      /**
       * 获取颜色
       *
       * @memberof TextStyle
       * @returns {String} 颜色
       */
      async getColor() {
        try {
          let color = await TS.getColor(this._MGTextStyleId);
          return color;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * @memberof TextStyle
       * @param {String} color 颜色 eg:'rgba(128, 128, 128, 128)'
       * @returns {Promise<Void>}
       */
      async setColor(color) {
        try {
          await TS.setColor(this._MGTextStyleId, color);
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 获取文本的大小
       *
       * @memberof TextStyle
       * @returns {Number} 文本大小（单位：dp，float类型的Number）
       */
      async getSize() {
        try {
          let size = await TS.getSize(this._MGTextStyleId);
          return size;
        } catch (e) {
          console.error(e);
        }
      }

      /**
       * 设置文本的大小
       *
       * @memberof TextStyle
       * @param {Number} size 文本大小（单位：dp，float类型的Number）
       * @returns {Promise<Void>}
       */
      async setSize(size) {
        try {
          await TS.setSize(this._MGTextStyleId, size);
        } catch (e) {
          console.error(e);
        }
      }
    }