0.7.3 • Published 4 months ago

@tuya-sat/sdf-main-sdk v0.7.3

Weekly downloads
-
License
MIT
Repository
-
Last release
4 months ago

@tuya-sat/sdf-main-sdk

涂鸦 SaaS 开发框架的主应用 SDK,核心逻辑有开发框架团队维护并保障稳定性。业务方只需要基于此 SDK,进行要少量的业务开发,就可以定制符合自己业务诉求的主应用

如何使用

  1. 快速初始化主应用项目
# 创建项目 `saas-main-app`
npx @tuya-sat/create-micro-app@latest saas-main-app -t main
  1. 配置调试 SaaS 打开 ./micro.config.js,配置需要调试的 saas 域名。如下:
module.exports = {
  debuggerConfig: {
    target: 'https://<my-first-saas-host>', // SaaS 域名
    isMainApp: true,
  }
}
  1. 启动项目
yarn start

功能介绍

Hooks

hooks 的定义和功能如下,将 hooks 存放到 ./src/hooks 目录下,sdk 会读取并加载

interface IHooks {
  /**
   * 功能:SaaS 页面渲染前钩子,主应用生命周期中最早的钩子
   */
  enterAppHook?: () => void;

  httpHook?: {
    /**
     * 功能:请求前拦截处理。可以在此处添加自定义的请求头
     * 示例:
     * ```
     *  before: (req) => {
     *    req.headers && (req.headers["abc"] = "sdf-main-sdk");
     *  }
     * ```
     */
    before?: (req) => void;
		
    /**
     * 功能:响应拦截处理。可以在这里统一格式化数据
     * 示例:
     * ```
     *  after: (data) => {
     *    // ....数据格式化逻辑
     *    return data;
     *  }
     * ```
     */
    after?: (data) => any;
  };

  /**
   * 功能:未登录时,对 SaaS 信息拦截处理
   */
  unLoginSaaSHook?: (saas: any) => Promise<any>;

  /**
   * 功能:登录成功后,对 SaaS 信息拦截处理
   */
  loginedSaaSHook?: (saasInfo: any) => Promise<any>;
}

页面 UI 配置

相关的配置,是以 props 属性的方式透传到组件内。具体配置项与使用方法如下

1. 登录页

类型定义
interface LoginPageProps {
  extra?: {
    // 标题
    TitleSolt?: React.FC<{ logo: string; title: string }>;

    // 背景图	
    BgSlot?: React.FC<{ bg: string }>;

    // 三要素
    ClauseSlot?: React.FC;

    // 右上角导航
    ExtraNavSlot?: React.FC;
  };
  customStyle?: {
    // 自定义表单样式
    formStyle?: React.CSSProperties;
  };
}
示例
// ./src/pages/login/index.tsx
import { LoginPage } from "@tuya-sat/sdf-main-sdk";

export default (props: LoginPageProps) => {
  return <LoginPage {...props} />
}

2. 忘记密码页

类型定义
interface ForgetPageProps {
  extra?: {
    // 背景图	
    BgSlot?: React.FC<{ bg: string }>;
  };
  customStyle?: {
	// 自定义表单样式
    formStyle?: React.CSSProperties;
  };
}
示例
// ./src/pages/forget/index.tsx
import { ForgetPage } from "@tuya-sat/sdf-main-sdk";

export default (props: ForgetPageProps) => {
  return <ForgetPage {...props} />
}

3. 注册页

类型定义
interface RegisterPageProps {
  extra?: {
    // 背景图	
    BgSlot?: React.FC<{ bg: string }>;
  };
  customStyle?: {
    // 自定义表单样式
    formStyle?: React.CSSProperties;
  };
}
示例
// ./src/pages/register/index.tsx
import { RegisterPage } from "@tuya-sat/sdf-main-sdk";

export default (props: RegisterPageProps) => {
  return <RegisterPage {...props} />
}

4. 设置页

类型定义
interface SettingPageProps {
  extra?: {
    beforeSlot?: React.FC;
    afterSlot?: React.FC;
  };
}
示例
// ./src/pages/setting/index.tsx
import { SettingPage } from "@tuya-sat/sdf-main-sdk";

export default (props: RegisterPageProps) => {
  return <SettingPage {...props} />
}

头部自定义配置

类型定义
type NavProps = {
  extra?: {
    // 自定义logo、标题
    LogoTitleSlot?: FC<{ title?: string; logo?: string }>;
    // 自定义右上角导航
    HeaderNavSlot?: FC;
    BeforeHeaderNavSlot?: FC;
    AfterHeaderNavSlot?: FC;
    // 自定义用户信息
    UserSlot?: FC;
    // 自定义 app 二维码下载
    QrcodeSlot?: FC;
  };
  hooks?: {
    modify?: (dmenus: Dmenus) => Dmenus;
    customUserRoles?: () => Promise<{
      role_code: string;
      role_name: string;
    }[]>;
  };
};
示例
// ./src/nav/index.tsx
import { MNav } from "@tuya-sat/sdf-main-sdk";

export default (props: NavProps) => {
  return <SettingPage {...props} />
}

多语言

如果新增了自定义组件,那其多语言需要存放到 ./src/lang 目录下,并且在组件内部需要引用 sdk 暴露的 i18n 方法进行翻译。如下:

import { i18n } from '@tuya-sat/sdf-main-sdk';

export default function CustomComponent() {
  return (
	// 注意:必须使用 sdk 暴露的 i18n 方法
    <div>{i18n.t('some key')}</div>
  )
}
2.0.0-alpha.76

4 months ago

2.0.0-alpha.75

5 months ago

2.0.0-alpha.74

5 months ago

2.0.0-alpha.73

5 months ago

2.0.0-alpha.72

5 months ago

2.0.0-alpha.71

5 months ago

2.0.0-alpha.70

5 months ago

2.0.0-alpha.69

5 months ago

2.0.0-alpha.66

5 months ago

2.0.0-alpha.65

5 months ago

2.0.0-alpha.68

5 months ago

2.0.0-alpha.67

5 months ago

2.0.0-alpha.59

5 months ago

2.0.0-alpha.58

5 months ago

2.0.0-alpha.57

5 months ago

2.0.0-alpha.56

5 months ago

2.0.0-alpha.64

5 months ago

2.0.0-alpha.63

5 months ago

2.0.0-alpha.62

5 months ago

2.0.0-alpha.61

5 months ago

2.0.0-alpha.60

5 months ago

0.7.2

6 months ago

0.7.3

6 months ago

2.0.0-alpha.55

5 months ago

2.0.0-alpha.54

5 months ago

2.0.0-alpha.53

5 months ago

2.0.0-alpha.52

5 months ago

2.0.0-alpha.51

5 months ago

2.0.0-alpha.50

6 months ago

2.0.0-alpha.49

6 months ago

2.0.0-alpha.48

6 months ago

2.0.0-alpha.44

7 months ago

2.0.0-alpha.43

7 months ago

2.0.0-alpha.42

7 months ago

2.0.0-alpha.41

7 months ago

2.0.0-alpha.40

7 months ago

2.0.0-alpha.47

7 months ago

2.0.0-alpha.46

7 months ago

2.0.0-alpha.45

7 months ago

2.0.0-alpha.33

7 months ago

2.0.0-alpha.32

7 months ago

2.0.0-alpha.31

7 months ago

2.0.0-alpha.30

7 months ago

2.0.0-alpha.39

7 months ago

2.0.0-alpha.38

7 months ago

2.0.0-alpha.37

7 months ago

2.0.0-alpha.36

7 months ago

2.0.0-alpha.35

7 months ago

2.0.0-alpha.34

7 months ago

2.0.0-alpha.29

7 months ago

2.0.0-alpha.28

7 months ago

2.0.0-alpha.27

7 months ago

2.0.0-alpha.22

7 months ago

2.0.0-alpha.26

7 months ago

2.0.0-alpha.25

7 months ago

2.0.0-alpha.24

7 months ago

2.0.0-alpha.23

7 months ago

2.0.0-alpha.19

7 months ago

2.0.0-alpha.18

7 months ago

2.0.0-alpha.17

7 months ago

2.0.0-alpha.16

7 months ago

2.0.0-alpha.15

7 months ago

2.0.0-alpha.14

7 months ago

2.0.0-alpha.21

7 months ago

2.0.0-alpha.20

7 months ago

2.0.0-alpha.11

7 months ago

2.0.0-alpha.13

7 months ago

2.0.0-alpha.12

7 months ago

2.0.0-alpha.7

8 months ago

2.0.0-alpha.8

8 months ago

2.0.0-alpha.9

8 months ago

2.0.0-alpha.3

8 months ago

2.0.0-alpha.10

8 months ago

2.0.0-alpha.4

8 months ago

2.0.0-alpha.5

8 months ago

2.0.0-alpha.6

8 months ago

2.0.0-alpha.1

8 months ago

2.0.0-alpha.2

8 months ago

0.7.1

8 months ago

0.7.0-cube5.0

9 months ago

0.8.0-alpha1

9 months ago

0.7.0

9 months ago

0.6.18

9 months ago

0.6.15-cube5.0

9 months ago

0.6.16-cube5.0

9 months ago

0.6.17

9 months ago

0.6.16

9 months ago

0.6.7

11 months ago

0.6.6

11 months ago

0.6.9

11 months ago

0.6.8

11 months ago

0.6.10

11 months ago

0.6.12

10 months ago

0.6.11

10 months ago

0.6.14

10 months ago

0.6.13

10 months ago

0.6.15

10 months ago

0.6.3

11 months ago

0.6.5

11 months ago

0.6.4

11 months ago

0.6.2

11 months ago

0.5.1

11 months ago

0.6.1

11 months ago

0.6.0

11 months ago

0.5.0

11 months ago

0.4.7

11 months ago

0.4.6

11 months ago

0.4.0-alpha.8

11 months ago

0.4.5

12 months ago

0.4.4

12 months ago

0.4.0-alpha.7

12 months ago

0.3.9-cube3.0

1 year ago

0.2.5-cube2.1

1 year ago

0.3.8-cube3.0

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.4.3

12 months ago

0.4.2

12 months ago

0.3.20

1 year ago

0.3.21

1 year ago

0.3.19

1 year ago

0.3.18

1 year ago

0.3.17

1 year ago

0.3.16

1 year ago

0.3.15

1 year ago

0.3.14

1 year ago

0.3.13

1 year ago

0.3.12

1 year ago

0.3.11

1 year ago

0.3.9

1 year ago

0.3.10

1 year ago

0.3.7-business7

1 year ago

0.3.7-business4

1 year ago

0.3.7-business6

1 year ago

0.3.7-business5

1 year ago

0.3.7-business3

1 year ago

0.3.8

1 year ago

0.3.7-business1

1 year ago

0.3.7-cube3.0

1 year ago

0.2.4-cube2.1

1 year ago

0.2.3-cube2.1

1 year ago

0.3.6

1 year ago

0.3.5

1 year ago

0.3.4

1 year ago

0.4.0-alpha.6

1 year ago

0.4.0-alpha.4

1 year ago

0.4.0-alpha.3

1 year ago

0.4.0-alpha.2

1 year ago

0.4.0-alpha.1

1 year ago

0.4.0-alpha.5

1 year ago

0.3.3

1 year ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.0

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.8

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.0.87

2 years ago

0.0.88

2 years ago

0.0.89

2 years ago

1.0.0-cube2.0.1

2 years ago

0.0.106

2 years ago

0.0.105

2 years ago

0.0.104

2 years ago

0.0.103

2 years ago

0.0.109

2 years ago

0.0.108

2 years ago

0.0.107

2 years ago

0.0.102

2 years ago

0.0.101

2 years ago

0.0.100

2 years ago

0.0.117

2 years ago

0.0.116

2 years ago

0.1.10

2 years ago

0.0.115

2 years ago

0.1.11

2 years ago

0.0.114

2 years ago

0.1.12

2 years ago

0.0.113

2 years ago

0.0.112

2 years ago

0.0.111

2 years ago

0.0.110

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.9

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.0.95

2 years ago

0.0.96

2 years ago

0.0.97

2 years ago

0.0.98

2 years ago

0.0.99

2 years ago

0.0.90

2 years ago

0.0.91

2 years ago

0.0.92

2 years ago

0.0.93

2 years ago

0.0.94

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.0.85

2 years ago

0.0.86

2 years ago

0.0.84

2 years ago

0.0.83

2 years ago

0.0.80

2 years ago

0.0.81

2 years ago

0.0.82

2 years ago

0.0.73

2 years ago

0.0.74

2 years ago

0.0.75

2 years ago

0.0.76

2 years ago

0.0.77

2 years ago

0.0.78

2 years ago

0.0.79

2 years ago

0.0.70

2 years ago

0.0.71

2 years ago

0.0.62

2 years ago

0.0.63

2 years ago

0.0.64

2 years ago

0.0.65

2 years ago

0.0.66

2 years ago

0.0.67

2 years ago

0.0.68

2 years ago

0.0.69

2 years ago

0.0.60

2 years ago

0.0.61

2 years ago

0.0.59

2 years ago

0.0.51

2 years ago

0.0.52

2 years ago

0.0.53

2 years ago

0.0.54

2 years ago

0.0.55

2 years ago

0.0.56

2 years ago

0.0.57

2 years ago

0.0.58

2 years ago

0.0.50

2 years ago

0.0.48

2 years ago

0.0.49

2 years ago

0.0.45

2 years ago

0.0.46

2 years ago

0.0.40

2 years ago

0.0.41

2 years ago

0.0.42

2 years ago

0.0.43

2 years ago

0.0.44

2 years ago

0.0.37

2 years ago

0.0.38

2 years ago

0.0.39

2 years ago

0.0.30

2 years ago

0.0.31

2 years ago

0.0.32

2 years ago

0.0.33

2 years ago

0.0.34

2 years ago

0.0.35

2 years ago

0.0.26

2 years ago

0.0.28

2 years ago

0.0.29

2 years ago

0.0.20

2 years ago

0.0.21

2 years ago

0.0.22

2 years ago

0.0.23

2 years ago

0.0.24

2 years ago

0.0.25

2 years ago

0.0.19

2 years ago

0.0.15

2 years ago

0.0.16

2 years ago

0.0.17

2 years ago

0.0.18

2 years ago

0.0.10

2 years ago

0.0.11

2 years ago

0.0.12

2 years ago

0.0.13

2 years ago

0.0.14

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.1

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.1-beta.20

3 years ago

0.0.1-beta.19

3 years ago

0.0.1-beta.18

3 years ago

0.0.1-beta.17

3 years ago

0.0.1-beta.16

3 years ago

0.0.1-beta.15

3 years ago

0.0.1-beta.14

3 years ago

0.0.1-beta.13

3 years ago

0.0.1-beta.12

3 years ago

0.0.1-beta.11

3 years ago

0.0.1-beta.10

3 years ago

0.0.1-beta.8

3 years ago

0.0.1-beta.7

3 years ago

0.0.1-beta.6

3 years ago

0.0.1-beta.5

3 years ago

0.0.1-beta.4

3 years ago

0.0.1-beta.3

3 years ago

0.0.1-beta.2

3 years ago

0.0.1-beta.1

3 years ago