@shopify/shop-minis-cli 0.0.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/build/commands/create-mini/index.d.ts +2 -0
- package/build/commands/create-mini/index.js +116 -0
- package/build/commands/create-mini/index.js.map +1 -0
- package/build/commands/create-mini/utils/template-app.d.ts +1 -0
- package/build/commands/create-mini/utils/template-app.js +44 -0
- package/build/commands/create-mini/utils/template-app.js.map +1 -0
- package/build/commands/dev/index.d.ts +6 -0
- package/build/commands/dev/index.js +31 -0
- package/build/commands/dev/index.js.map +1 -0
- package/build/commands/dev/utils/android.d.ts +16 -0
- package/build/commands/dev/utils/android.js +165 -0
- package/build/commands/dev/utils/android.js.map +1 -0
- package/build/commands/dev/utils/binaries.d.ts +83 -0
- package/build/commands/dev/utils/binaries.js +173 -0
- package/build/commands/dev/utils/binaries.js.map +1 -0
- package/build/commands/dev/utils/binaries.test.d.ts +1 -0
- package/build/commands/dev/utils/binaries.test.js +275 -0
- package/build/commands/dev/utils/binaries.test.js.map +1 -0
- package/build/commands/dev/utils/deeplink.d.ts +3 -0
- package/build/commands/dev/utils/deeplink.js +30 -0
- package/build/commands/dev/utils/deeplink.js.map +1 -0
- package/build/commands/dev/utils/interactive-terminal.d.ts +23 -0
- package/build/commands/dev/utils/interactive-terminal.js +252 -0
- package/build/commands/dev/utils/interactive-terminal.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-config.d.ts +2 -0
- package/build/commands/dev/utils/metro/metro-config.js +31 -0
- package/build/commands/dev/utils/metro/metro-config.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-reporter.d.ts +14 -0
- package/build/commands/dev/utils/metro/metro-reporter.js +34 -0
- package/build/commands/dev/utils/metro/metro-reporter.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.d.ts +6 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.js +45 -0
- package/build/commands/dev/utils/metro/metro-server-middleware.js.map +1 -0
- package/build/commands/dev/utils/metro/metro-server.d.ts +2 -0
- package/build/commands/dev/utils/metro/metro-server.js +24 -0
- package/build/commands/dev/utils/metro/metro-server.js.map +1 -0
- package/build/commands/dev/utils/minis-manifest.d.ts +1 -0
- package/build/commands/dev/utils/minis-manifest.js +24 -0
- package/build/commands/dev/utils/minis-manifest.js.map +1 -0
- package/build/commands/dev/utils/qr-code.d.ts +1 -0
- package/build/commands/dev/utils/qr-code.js +12 -0
- package/build/commands/dev/utils/qr-code.js.map +1 -0
- package/build/commands/dev/utils/simulator.d.ts +19 -0
- package/build/commands/dev/utils/simulator.js +89 -0
- package/build/commands/dev/utils/simulator.js.map +1 -0
- package/build/commands/dev/utils/with-retries.d.ts +4 -0
- package/build/commands/dev/utils/with-retries.js +28 -0
- package/build/commands/dev/utils/with-retries.js.map +1 -0
- package/build/commands/generate-graphql-types/index.d.ts +5 -0
- package/build/commands/generate-graphql-types/index.js +90 -0
- package/build/commands/generate-graphql-types/index.js.map +1 -0
- package/build/commands/utils/exec-async-child-process.d.ts +18 -0
- package/build/commands/utils/exec-async-child-process.js +48 -0
- package/build/commands/utils/exec-async-child-process.js.map +1 -0
- package/build/commands/utils/wrap-with-loading-indicator.d.ts +9 -0
- package/build/commands/utils/wrap-with-loading-indicator.js +23 -0
- package/build/commands/utils/wrap-with-loading-indicator.js.map +1 -0
- package/build/dev-panel/images/bottomsheet.png +0 -0
- package/build/dev-panel/images/checkmark.svg +3 -0
- package/build/dev-panel/images/chevron.svg +3 -0
- package/build/dev-panel/images/copy.svg +4 -0
- package/build/dev-panel/images/get-started.svg +3 -0
- package/build/dev-panel/images/how-to.svg +3 -0
- package/build/dev-panel/images/navigation.png +0 -0
- package/build/dev-panel/images/references.svg +3 -0
- package/build/dev-panel/images/shop-minis-logo-inverse.svg +5 -0
- package/build/dev-panel/images/shop-minis-logo.svg +5 -0
- package/build/dev-panel/images/stories.png +0 -0
- package/build/dev-panel/images/topics.svg +3 -0
- package/build/dev-panel/index.html +302 -0
- package/build/dev-panel/middleware.d.ts +4 -0
- package/build/dev-panel/middleware.js +11 -0
- package/build/dev-panel/middleware.js.map +1 -0
- package/build/dev-panel/middleware.ts +6 -0
- package/build/dev-panel/styles.css +507 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +26 -0
- package/build/index.js.map +1 -0
- package/package.json +83 -0
- package/templates/__template_blank/src/custom.d.ts +4 -0
- package/templates/__template_blank/src/index.tsx +9 -0
- package/templates/__template_blank/src/screens/HomeScreen.tsx +12 -0
- package/templates/__template_blank/src/types.ts +5 -0
- package/templates/__template_common/.eslintignore +1 -0
- package/templates/__template_common/.eslintrc.json +132 -0
- package/templates/__template_common/.prettierrc.json +8 -0
- package/templates/__template_common/babel.config.js +19 -0
- package/templates/__template_common/gitignore +3 -0
- package/templates/__template_common/index.tsx +43 -0
- package/templates/__template_common/metro.config.js +31 -0
- package/templates/__template_common/package.json +68 -0
- package/templates/__template_common/patches/react-native+0.68.5.patch +173 -0
- package/templates/__template_common/src/manifest.json +29 -0
- package/templates/__template_common/tsconfig.json +36 -0
- package/templates/__template_hello_world/src/assets/Modal-component-thumbnail.png +0 -0
- package/templates/__template_hello_world/src/assets/ProductCard-component-thumbnail.png +0 -0
- package/templates/__template_hello_world/src/assets/ProductLink-component-thumbnail.png +0 -0
- package/templates/__template_hello_world/src/assets/assets.d.ts +4 -0
- package/templates/__template_hello_world/src/assets/figma-logo.svg +14 -0
- package/templates/__template_hello_world/src/assets/shop-minis-logo.svg +7 -0
- package/templates/__template_hello_world/src/components/ButtonCTA.tsx +31 -0
- package/templates/__template_hello_world/src/components/ComponentLink.ts +70 -0
- package/templates/__template_hello_world/src/components/ComponentListItem.tsx +38 -0
- package/templates/__template_hello_world/src/components/FeaturedComponents.tsx +108 -0
- package/templates/__template_hello_world/src/components/Header.tsx +40 -0
- package/templates/__template_hello_world/src/data/Test.graphql +33 -0
- package/templates/__template_hello_world/src/data/Test.graphql.d.ts +114 -0
- package/templates/__template_hello_world/src/data/TestProducts.graphql +34 -0
- package/templates/__template_hello_world/src/data/TestProducts.graphql.d.ts +119 -0
- package/templates/__template_hello_world/src/index.tsx +9 -0
- package/templates/__template_hello_world/src/routes.tsx +107 -0
- package/templates/__template_hello_world/src/screens/AvatarScreen.tsx +95 -0
- package/templates/__template_hello_world/src/screens/BottomSheetScreen.tsx +711 -0
- package/templates/__template_hello_world/src/screens/ButtonsScreen.tsx +90 -0
- package/templates/__template_hello_world/src/screens/GridScreen.tsx +74 -0
- package/templates/__template_hello_world/src/screens/HomeScreen.tsx +70 -0
- package/templates/__template_hello_world/src/screens/IconsScreen.tsx +181 -0
- package/templates/__template_hello_world/src/screens/MediaScreen.tsx +130 -0
- package/templates/__template_hello_world/src/screens/ModalScreen.tsx +379 -0
- package/templates/__template_hello_world/src/screens/ProductCardGridScreen.tsx +68 -0
- package/templates/__template_hello_world/src/screens/ProductCardScreen.tsx +62 -0
- package/templates/__template_hello_world/src/screens/ProductLinkScreen.tsx +215 -0
- package/templates/__template_hello_world/src/screens/ProgressIndicatorScreen.tsx +77 -0
- package/templates/__template_hello_world/src/screens/QuantityPickerScreen.tsx +76 -0
- package/templates/__template_hello_world/src/screens/SpinnerScreen.tsx +63 -0
- package/templates/__template_hello_world/src/screens/TypographyScreen.tsx +274 -0
- package/templates/__template_hello_world/src/screens/WebViewScreen.tsx +42 -0
- package/templates/__template_hello_world/src/types.ts +25 -0
- package/templates/__template_snowboardz/src/assets/assets.d.ts +4 -0
- package/templates/__template_snowboardz/src/assets/circle-blue.svg +9 -0
- package/templates/__template_snowboardz/src/assets/circle-green.svg +9 -0
- package/templates/__template_snowboardz/src/assets/circle-purple.svg +9 -0
- package/templates/__template_snowboardz/src/assets/circle-rainbow.svg +34 -0
- package/templates/__template_snowboardz/src/assets/circle-red.svg +9 -0
- package/templates/__template_snowboardz/src/assets/circle-yellow.svg +9 -0
- package/templates/__template_snowboardz/src/assets/skill-level-icon-advanced.svg +3 -0
- package/templates/__template_snowboardz/src/assets/skill-level-icon-beginner.svg +3 -0
- package/templates/__template_snowboardz/src/assets/skill-level-icon-intermediate.svg +3 -0
- package/templates/__template_snowboardz/src/components/ColorButton.tsx +79 -0
- package/templates/__template_snowboardz/src/components/ColorPicker.tsx +40 -0
- package/templates/__template_snowboardz/src/components/EmptyResult.tsx +52 -0
- package/templates/__template_snowboardz/src/components/SkillLevelIcon.tsx +44 -0
- package/templates/__template_snowboardz/src/components/SkillLevelPicker.tsx +86 -0
- package/templates/__template_snowboardz/src/data/TestProducts.graphql +34 -0
- package/templates/__template_snowboardz/src/data/TestProducts.graphql.d.ts +108 -0
- package/templates/__template_snowboardz/src/hooks/useSnowboardData.tsx +37 -0
- package/templates/__template_snowboardz/src/index.tsx +9 -0
- package/templates/__template_snowboardz/src/routes.tsx +17 -0
- package/templates/__template_snowboardz/src/screens/HomeScreen.tsx +126 -0
- package/templates/__template_snowboardz/src/types.ts +12 -0
- package/templates/__template_snowboardz/src/utils.ts +17 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
{
|
|
2
|
+
"root": true,
|
|
3
|
+
"extends": [
|
|
4
|
+
"@react-native-community",
|
|
5
|
+
"plugin:@shopify/typescript",
|
|
6
|
+
"plugin:@shopify/react",
|
|
7
|
+
"plugin:@shopify/jest",
|
|
8
|
+
"plugin:@shopify/prettier"
|
|
9
|
+
],
|
|
10
|
+
"plugins": ["jest", "reanimated"],
|
|
11
|
+
"settings": {
|
|
12
|
+
"react": {
|
|
13
|
+
"version": "detect"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"parserOptions": {
|
|
17
|
+
"ecmaVersion": 6,
|
|
18
|
+
"project": "./tsconfig.json",
|
|
19
|
+
"schema": "node_modules/@shopify/shop-minis-platform-sdk/src/api/minis.graphql",
|
|
20
|
+
"operations": "**/*.graphql"
|
|
21
|
+
},
|
|
22
|
+
"rules": {
|
|
23
|
+
"@babel/no-unused-expressions": 0,
|
|
24
|
+
"@typescript-eslint/no-unused-expressions": [
|
|
25
|
+
"error",
|
|
26
|
+
{
|
|
27
|
+
"allowShortCircuit": true
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"line-comment-position": 0,
|
|
31
|
+
"no-implicit-coercion": 2,
|
|
32
|
+
"consistent-return": 0,
|
|
33
|
+
"no-console": 0,
|
|
34
|
+
"jsx-a11y/no-autofocus": 0,
|
|
35
|
+
"@shopify/strict-component-boundaries": 0,
|
|
36
|
+
"react/display-name": 0,
|
|
37
|
+
"spaced-comment": 0,
|
|
38
|
+
"no-warning-comments": "off",
|
|
39
|
+
"no-process-env": "off",
|
|
40
|
+
"lines-around-comment": "off",
|
|
41
|
+
"react/jsx-no-bind": "off",
|
|
42
|
+
"react/state-in-constructor": "off",
|
|
43
|
+
"react/jsx-no-constructed-context-values": "off",
|
|
44
|
+
"react/jsx-uses-react": "off",
|
|
45
|
+
"react/react-in-jsx-scope": "off",
|
|
46
|
+
"@shopify/typescript/prefer-pascal-case-enums": "off",
|
|
47
|
+
"@typescript-eslint/naming-convention": "off",
|
|
48
|
+
"@typescript-eslint/ban-ts-comment": "off",
|
|
49
|
+
"@typescript-eslint/consistent-indexed-object-style": "off",
|
|
50
|
+
"@typescript-eslint/member-ordering": "off",
|
|
51
|
+
"@shopify/react-no-multiple-render-methods": "off",
|
|
52
|
+
"@shopify/react-type-state": "off",
|
|
53
|
+
"@shopify/react-prefer-private-members": "off",
|
|
54
|
+
"react/no-unused-prop-types": "off",
|
|
55
|
+
"@shopify/jest/no-vague-titles": "off",
|
|
56
|
+
"@shopify/jsx-no-complex-expressions": "off",
|
|
57
|
+
"@shopify/jsx-no-hardcoded-content": "off",
|
|
58
|
+
"import/no-named-as-default": "off",
|
|
59
|
+
"import/named": "off",
|
|
60
|
+
"id-blacklist": [2, "blacklist", "whitelist"],
|
|
61
|
+
"@shopify/images-no-direct-imports": "off",
|
|
62
|
+
"@typescript-eslint/camelcase": "off",
|
|
63
|
+
"@typescript-eslint/ban-ts-ignore": "off",
|
|
64
|
+
"@typescript-eslint/ban-types": "off",
|
|
65
|
+
"@typescript-eslint/class-name-casing": "off",
|
|
66
|
+
"@typescript-eslint/array-type": "off",
|
|
67
|
+
"jest/no-standalone-expect": "off",
|
|
68
|
+
"jest/no-test-callback": "off",
|
|
69
|
+
"@typescript-eslint/no-namespace": "off",
|
|
70
|
+
"react-native/no-inline-styles": "off",
|
|
71
|
+
"jsx-a11y/accessible-emoji": "off",
|
|
72
|
+
"jest/valid-title": "off",
|
|
73
|
+
"@typescript-eslint/no-unused-vars": [
|
|
74
|
+
"error",
|
|
75
|
+
{
|
|
76
|
+
"argsIgnorePattern": "^_",
|
|
77
|
+
"varsIgnorePattern": "^_.{1,}"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"@typescript-eslint/no-shadow": "error",
|
|
81
|
+
"no-shadow": "off",
|
|
82
|
+
"max-len": [
|
|
83
|
+
"error",
|
|
84
|
+
{
|
|
85
|
+
"code": 200,
|
|
86
|
+
"ignoreUrls": true
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"no-restricted-imports": [
|
|
90
|
+
"error",
|
|
91
|
+
{
|
|
92
|
+
"paths": [
|
|
93
|
+
{
|
|
94
|
+
"name": "react",
|
|
95
|
+
"importNames": ["default"],
|
|
96
|
+
"message": "JSX Transform is active. Please remove unnecessary default import of 'React' or use destructured named imports instead"
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"reanimated/js-function-in-worklet": 2,
|
|
102
|
+
"react-hooks/exhaustive-deps": ["error"]
|
|
103
|
+
},
|
|
104
|
+
"overrides": [
|
|
105
|
+
{
|
|
106
|
+
"files": ["*.ts", "*.tsx"],
|
|
107
|
+
"rules": {
|
|
108
|
+
"@typescript-eslint/no-non-null-assertion": 0,
|
|
109
|
+
"shopify/typescript/prefer-pascal-case-enums": 0
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"files": ["**/*.graphql"],
|
|
114
|
+
"extends": "plugin:@graphql-eslint/operations-recommended",
|
|
115
|
+
"rules": {
|
|
116
|
+
"@graphql-eslint/no-deprecated": "warn",
|
|
117
|
+
|
|
118
|
+
// we sometimes declare fragments that get used in TypeScript, which causes this to error
|
|
119
|
+
"@graphql-eslint/no-unused-fragments": "off",
|
|
120
|
+
"@graphql-eslint/naming-convention": "off",
|
|
121
|
+
"@graphql-eslint/selection-set-depth": ["error", {"maxDepth": 15}]
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"files": ["*.spec.*", "*.test.*"],
|
|
126
|
+
"rules": {
|
|
127
|
+
"require-await": 2,
|
|
128
|
+
"@typescript-eslint/no-floating-promises": 2
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
presets: [
|
|
3
|
+
[
|
|
4
|
+
'module:metro-react-native-babel-preset',
|
|
5
|
+
{useTransformReactJSXExperimental: true},
|
|
6
|
+
],
|
|
7
|
+
],
|
|
8
|
+
plugins: [
|
|
9
|
+
[
|
|
10
|
+
'@babel/plugin-transform-react-jsx',
|
|
11
|
+
{
|
|
12
|
+
runtime: 'automatic',
|
|
13
|
+
},
|
|
14
|
+
],
|
|
15
|
+
['@babel/plugin-transform-named-capturing-groups-regex'],
|
|
16
|
+
['import-graphql'],
|
|
17
|
+
['react-native-reanimated/plugin'],
|
|
18
|
+
],
|
|
19
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Note: This file is only used for the development mode. Changes made here will not be
|
|
2
|
+
// reflected in published/production mode mini apps
|
|
3
|
+
import 'intl'
|
|
4
|
+
import 'intl/locale-data/jsonp/en'
|
|
5
|
+
import {AppRegistry} from 'react-native'
|
|
6
|
+
import 'react-native-gesture-handler'
|
|
7
|
+
import {useNativeEventEmitterShopActions} from '@shopify/shop-minis-platform-sdk'
|
|
8
|
+
import {Wrapper} from '@shopify/shop-minis-platform-sdk/src/components/Wrapper'
|
|
9
|
+
import {ShopActionsProvider} from '@shopify/shop-minis-platform-sdk/actions'
|
|
10
|
+
|
|
11
|
+
import MiniAppRootComponent, {theme} from './src'
|
|
12
|
+
|
|
13
|
+
AppRegistry.registerComponent(
|
|
14
|
+
'ShopMinis',
|
|
15
|
+
() =>
|
|
16
|
+
({
|
|
17
|
+
initialApiKeys,
|
|
18
|
+
apiHeaders,
|
|
19
|
+
params = {},
|
|
20
|
+
entryPoint = null,
|
|
21
|
+
entryPointParams = null,
|
|
22
|
+
environment,
|
|
23
|
+
}: any) => {
|
|
24
|
+
const actions = useNativeEventEmitterShopActions()
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<ShopActionsProvider value={actions}>
|
|
28
|
+
<Wrapper
|
|
29
|
+
initialApiKeys={initialApiKeys}
|
|
30
|
+
apiHeaders={apiHeaders}
|
|
31
|
+
theme={theme}
|
|
32
|
+
params={params}
|
|
33
|
+
entryPoint={entryPoint}
|
|
34
|
+
entryPointParams={entryPointParams}
|
|
35
|
+
environment={environment}
|
|
36
|
+
enableApiSandbox
|
|
37
|
+
>
|
|
38
|
+
<MiniAppRootComponent />
|
|
39
|
+
</Wrapper>
|
|
40
|
+
</ShopActionsProvider>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const {getDefaultConfig} = require('metro-config') // eslint-disable-line import/no-extraneous-dependencies
|
|
2
|
+
|
|
3
|
+
module.exports = (async () => {
|
|
4
|
+
const {
|
|
5
|
+
resolver: {sourceExts, assetExts},
|
|
6
|
+
} = await getDefaultConfig()
|
|
7
|
+
|
|
8
|
+
return {
|
|
9
|
+
// We need to explicitly tell metro/haste/watchman to register the root directory
|
|
10
|
+
// otherwise imports fail when running minis directly.
|
|
11
|
+
// https://github.com/facebook/react-native/issues/24432#issuecomment-482798850
|
|
12
|
+
watchFolders: [__dirname],
|
|
13
|
+
server: {
|
|
14
|
+
port: parseInt(process.env.RCT_METRO_PORT, 10) || 8082,
|
|
15
|
+
},
|
|
16
|
+
transformer: {
|
|
17
|
+
// eslint-disable-next-line require-await
|
|
18
|
+
getTransformOptions: async () => ({
|
|
19
|
+
transform: {
|
|
20
|
+
experimentalImportSupport: false,
|
|
21
|
+
inlineRequires: true,
|
|
22
|
+
},
|
|
23
|
+
}),
|
|
24
|
+
babelTransformerPath: require.resolve('react-native-svg-transformer'),
|
|
25
|
+
},
|
|
26
|
+
resolver: {
|
|
27
|
+
assetExts: assetExts.filter(ext => ext !== 'svg'),
|
|
28
|
+
sourceExts: [...sourceExts, 'svg'],
|
|
29
|
+
},
|
|
30
|
+
}
|
|
31
|
+
})()
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "__MINI_APP_HANDLE_KEBAB_CASE__",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"private": true,
|
|
5
|
+
"scripts": {
|
|
6
|
+
"start": "shop-minis dev",
|
|
7
|
+
"test": "jest",
|
|
8
|
+
"lint": "eslint .",
|
|
9
|
+
"postinstall": "patch-package",
|
|
10
|
+
"generate-graphql-types": "shop-minis generate-graphql-types"
|
|
11
|
+
},
|
|
12
|
+
"devDependencies": {
|
|
13
|
+
"@babel/core": "^7.12.9",
|
|
14
|
+
"@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5",
|
|
15
|
+
"@babel/plugin-transform-react-jsx": "^7.20.7",
|
|
16
|
+
"@babel/runtime": "^7.12.5",
|
|
17
|
+
"@graphql-eslint/eslint-plugin": "^3.15.0",
|
|
18
|
+
"@react-native-community/blur": "4.3.0",
|
|
19
|
+
"@react-native-community/eslint-config": "^3.2.0",
|
|
20
|
+
"@react-navigation/native": "6.1.2",
|
|
21
|
+
"@react-navigation/native-stack": "6.9.8",
|
|
22
|
+
"@shopify/eslint-plugin": "^42.0.3",
|
|
23
|
+
"@shopify/react-graphql": "9.2.3",
|
|
24
|
+
"@shopify/restyle": "^2.1.0",
|
|
25
|
+
"@shopify/shop-minis-cli": "__SHOP_MINIS_CLI_VERSION__",
|
|
26
|
+
"@shopify/shop-minis-platform-sdk": "^0.1.0",
|
|
27
|
+
"@types/color": "^3.0.3",
|
|
28
|
+
"@types/react": "^17.0.39",
|
|
29
|
+
"@types/react-native": "^0.68.1",
|
|
30
|
+
"apollo-cache-inmemory": "^1.6.6",
|
|
31
|
+
"apollo-client": "^2.6.10",
|
|
32
|
+
"apollo-link": "^1.2.14",
|
|
33
|
+
"apollo-link-context": "^1.0.20",
|
|
34
|
+
"apollo-link-error": "^1.1.13",
|
|
35
|
+
"apollo-link-http": "^1.5.17",
|
|
36
|
+
"apollo-link-timeout": "^1.4.1",
|
|
37
|
+
"babel-jest": "^26.6.3",
|
|
38
|
+
"babel-plugin-import-graphql": "^2.8.1",
|
|
39
|
+
"color": "^4.2.3",
|
|
40
|
+
"eslint": "^8.32.0",
|
|
41
|
+
"eslint-plugin-react-native": "^4.0.0",
|
|
42
|
+
"eslint-plugin-reanimated": "^2.0.0",
|
|
43
|
+
"graphql": "^15.0.0",
|
|
44
|
+
"intl": "^1.2.5",
|
|
45
|
+
"jest": "^26.6.3",
|
|
46
|
+
"metro-react-native-babel-preset": "^0.67.0",
|
|
47
|
+
"patch-package": "^6.4.7",
|
|
48
|
+
"postinstall-postinstall": "^2.1.0",
|
|
49
|
+
"prettier": "^2.8.2",
|
|
50
|
+
"react": "17.0.2",
|
|
51
|
+
"react-native": "0.68.5",
|
|
52
|
+
"react-native-fast-image": "8.6.3",
|
|
53
|
+
"react-native-gesture-handler": "2.6.1",
|
|
54
|
+
"react-native-localize": "2.2.4",
|
|
55
|
+
"react-native-progress": "5.0.0",
|
|
56
|
+
"react-native-reanimated": "2.13.0",
|
|
57
|
+
"react-native-safe-area-context": "4.4.1",
|
|
58
|
+
"react-native-screens": "3.18.2",
|
|
59
|
+
"react-native-svg": "13.6.0",
|
|
60
|
+
"react-native-svg-transformer": "^1.0.0",
|
|
61
|
+
"react-native-webview": "11.23.1",
|
|
62
|
+
"react-test-renderer": "17.0.2",
|
|
63
|
+
"typescript": "~4.7.4"
|
|
64
|
+
},
|
|
65
|
+
"jest": {
|
|
66
|
+
"preset": "react-native"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
Apply the changes from https://github.com/facebook/react-native/pull/33726
|
|
2
|
+
so that we can run on a different port. This can be removed once that PR lands
|
|
3
|
+
in react-native stable
|
|
4
|
+
|
|
5
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.fb.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.fb.js
|
|
6
|
+
index f37be3e..8ff1683 100644
|
|
7
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.fb.js
|
|
8
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.fb.js
|
|
9
|
+
@@ -5302,7 +5302,7 @@ var getViewConfigForType =
|
|
10
|
+
// % 2 === 0 means it is a Fabric tag.
|
|
11
|
+
// This means that they never overlap.
|
|
12
|
+
|
|
13
|
+
-var nextReactTag = 2;
|
|
14
|
+
+var nextReactTag = 999992;
|
|
15
|
+
|
|
16
|
+
// TODO: Remove this conditional once all changes have propagated.
|
|
17
|
+
if (registerEventHandler) {
|
|
18
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js
|
|
19
|
+
index 39be910..68e9a22 100644
|
|
20
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js
|
|
21
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-dev.js
|
|
22
|
+
@@ -4810,7 +4810,7 @@ var getViewConfigForType =
|
|
23
|
+
// % 2 === 0 means it is a Fabric tag.
|
|
24
|
+
// This means that they never overlap.
|
|
25
|
+
|
|
26
|
+
-var nextReactTag = 2;
|
|
27
|
+
+var nextReactTag = 999992;
|
|
28
|
+
|
|
29
|
+
// TODO: Remove this conditional once all changes have propagated.
|
|
30
|
+
if (registerEventHandler) {
|
|
31
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.fb.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.fb.js
|
|
32
|
+
index bd8208a..75c9d37 100644
|
|
33
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.fb.js
|
|
34
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.fb.js
|
|
35
|
+
@@ -1851,7 +1851,7 @@ var _nativeFabricUIManage = nativeFabricUIManager,
|
|
36
|
+
_nativeFabricUIManage.unstable_getCurrentEventPriority,
|
|
37
|
+
getViewConfigForType =
|
|
38
|
+
ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,
|
|
39
|
+
- nextReactTag = 2;
|
|
40
|
+
+ nextReactTag = 999992;
|
|
41
|
+
registerEventHandler && registerEventHandler(dispatchEvent);
|
|
42
|
+
var ReactFabricHostComponent = (function() {
|
|
43
|
+
function ReactFabricHostComponent(
|
|
44
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js
|
|
45
|
+
index 058a5e1..87e8af5 100644
|
|
46
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js
|
|
47
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-prod.js
|
|
48
|
+
@@ -1847,7 +1847,7 @@ var _nativeFabricUIManage = nativeFabricUIManager,
|
|
49
|
+
_nativeFabricUIManage.unstable_getCurrentEventPriority,
|
|
50
|
+
getViewConfigForType =
|
|
51
|
+
ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,
|
|
52
|
+
- nextReactTag = 2;
|
|
53
|
+
+ nextReactTag = 999992;
|
|
54
|
+
registerEventHandler && registerEventHandler(dispatchEvent);
|
|
55
|
+
var ReactFabricHostComponent = (function() {
|
|
56
|
+
function ReactFabricHostComponent(
|
|
57
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js
|
|
58
|
+
index 88a4d7e..88b9720 100644
|
|
59
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js
|
|
60
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js
|
|
61
|
+
@@ -1972,7 +1972,7 @@ var _nativeFabricUIManage = nativeFabricUIManager,
|
|
62
|
+
_nativeFabricUIManage.unstable_getCurrentEventPriority,
|
|
63
|
+
getViewConfigForType =
|
|
64
|
+
ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,
|
|
65
|
+
- nextReactTag = 2;
|
|
66
|
+
+ nextReactTag = 999992;
|
|
67
|
+
registerEventHandler && registerEventHandler(dispatchEvent);
|
|
68
|
+
var ReactFabricHostComponent = (function() {
|
|
69
|
+
function ReactFabricHostComponent(
|
|
70
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js
|
|
71
|
+
index 791e998..740a8b3 100644
|
|
72
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js
|
|
73
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactFabric-profiling.js
|
|
74
|
+
@@ -1895,7 +1895,7 @@ var _nativeFabricUIManage = nativeFabricUIManager,
|
|
75
|
+
_nativeFabricUIManage.unstable_getCurrentEventPriority,
|
|
76
|
+
getViewConfigForType =
|
|
77
|
+
ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,
|
|
78
|
+
- nextReactTag = 2;
|
|
79
|
+
+ nextReactTag = 999992;
|
|
80
|
+
registerEventHandler && registerEventHandler(dispatchEvent);
|
|
81
|
+
var ReactFabricHostComponent = (function() {
|
|
82
|
+
function ReactFabricHostComponent(
|
|
83
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js
|
|
84
|
+
index fa3df1e..7822e98 100644
|
|
85
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js
|
|
86
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js
|
|
87
|
+
@@ -5531,7 +5531,7 @@ var UPDATE_SIGNAL = {};
|
|
88
|
+
// % 10 === 1 means it is a rootTag.
|
|
89
|
+
// % 2 === 0 means it is a Fabric tag.
|
|
90
|
+
|
|
91
|
+
-var nextReactTag = 3;
|
|
92
|
+
+var nextReactTag = 999993;
|
|
93
|
+
|
|
94
|
+
function allocateTag() {
|
|
95
|
+
var tag = nextReactTag;
|
|
96
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js
|
|
97
|
+
index 3772e42..041524c 100644
|
|
98
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js
|
|
99
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js
|
|
100
|
+
@@ -5024,7 +5024,7 @@ var UPDATE_SIGNAL = {};
|
|
101
|
+
// % 10 === 1 means it is a rootTag.
|
|
102
|
+
// % 2 === 0 means it is a Fabric tag.
|
|
103
|
+
|
|
104
|
+
-var nextReactTag = 3;
|
|
105
|
+
+var nextReactTag = 999993;
|
|
106
|
+
|
|
107
|
+
function allocateTag() {
|
|
108
|
+
var tag = nextReactTag;
|
|
109
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js
|
|
110
|
+
index 34c20b4..c764e34 100644
|
|
111
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js
|
|
112
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js
|
|
113
|
+
@@ -1912,7 +1912,7 @@ function shim$1() {
|
|
114
|
+
var getViewConfigForType =
|
|
115
|
+
ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,
|
|
116
|
+
UPDATE_SIGNAL = {},
|
|
117
|
+
- nextReactTag = 3;
|
|
118
|
+
+ nextReactTag = 999993;
|
|
119
|
+
function allocateTag() {
|
|
120
|
+
var tag = nextReactTag;
|
|
121
|
+
1 === tag % 10 && (tag += 2);
|
|
122
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js
|
|
123
|
+
index 3fb794d..f3a6a5b 100644
|
|
124
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js
|
|
125
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js
|
|
126
|
+
@@ -1906,7 +1906,7 @@ function shim() {
|
|
127
|
+
var getViewConfigForType =
|
|
128
|
+
ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,
|
|
129
|
+
UPDATE_SIGNAL = {},
|
|
130
|
+
- nextReactTag = 3;
|
|
131
|
+
+ nextReactTag = 999993;
|
|
132
|
+
function allocateTag() {
|
|
133
|
+
var tag = nextReactTag;
|
|
134
|
+
1 === tag % 10 && (tag += 2);
|
|
135
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js
|
|
136
|
+
index f9734c0..847f3a3 100644
|
|
137
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js
|
|
138
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js
|
|
139
|
+
@@ -2033,7 +2033,7 @@ function shim$1() {
|
|
140
|
+
var getViewConfigForType =
|
|
141
|
+
ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,
|
|
142
|
+
UPDATE_SIGNAL = {},
|
|
143
|
+
- nextReactTag = 3;
|
|
144
|
+
+ nextReactTag = 999993;
|
|
145
|
+
function allocateTag() {
|
|
146
|
+
var tag = nextReactTag;
|
|
147
|
+
1 === tag % 10 && (tag += 2);
|
|
148
|
+
diff --git a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js
|
|
149
|
+
index b875b0e..7441160 100644
|
|
150
|
+
--- a/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js
|
|
151
|
+
+++ b/node_modules/react-native/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js
|
|
152
|
+
@@ -1954,7 +1954,7 @@ function shim() {
|
|
153
|
+
var getViewConfigForType =
|
|
154
|
+
ReactNativePrivateInterface.ReactNativeViewConfigRegistry.get,
|
|
155
|
+
UPDATE_SIGNAL = {},
|
|
156
|
+
- nextReactTag = 3;
|
|
157
|
+
+ nextReactTag = 999993;
|
|
158
|
+
function allocateTag() {
|
|
159
|
+
var tag = nextReactTag;
|
|
160
|
+
1 === tag % 10 && (tag += 2);
|
|
161
|
+
diff --git a/node_modules/react-native/React-Core.podspec b/node_modules/react-native/React-Core.podspec
|
|
162
|
+
index 375bd9e..1721fef 100644
|
|
163
|
+
--- a/node_modules/react-native/React-Core.podspec
|
|
164
|
+
+++ b/node_modules/react-native/React-Core.podspec
|
|
165
|
+
@@ -47,7 +47,7 @@ Pod::Spec.new do |s|
|
|
166
|
+
s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
|
|
167
|
+
s.header_dir = "React"
|
|
168
|
+
s.framework = "JavaScriptCore"
|
|
169
|
+
- s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/RCT-Folly\" \"${PODS_ROOT}/Headers/Public/React-hermes\" \"${PODS_ROOT}/Headers/Public/hermes-engine\" \"${PODS_ROOT}/Headers/Public/FlipperKit\" \"$(PODS_ROOT)/Headers/Public/ReactCommon\" \"$(PODS_ROOT)/Headers/Public/React-RCTFabric\"", "DEFINES_MODULE" => "YES" }
|
|
170
|
+
+ s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/ReactCommon\" \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/RCT-Folly\" \"${PODS_ROOT}/Headers/Public/React-hermes\" \"${PODS_ROOT}/Headers/Public/hermes-engine\" \"${PODS_ROOT}/Headers/Public/FlipperKit\" \"$(PODS_ROOT)/Headers/Public/ReactCommon\" \"$(PODS_ROOT)/Headers/Public/React-RCTFabric\"", "DEFINES_MODULE" => "YES", "GCC_PREPROCESSOR_DEFINITIONS" => "RCT_METRO_PORT=${RCT_METRO_PORT}" }
|
|
171
|
+
s.user_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/Headers/Private/React-Core\""}
|
|
172
|
+
s.default_subspec = "Default"
|
|
173
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "__MINI_APP_NAME__",
|
|
3
|
+
"handle": "__MINI_APP_HANDLE_KEBAB_CASE__",
|
|
4
|
+
"icon_url": "https://cdn.shopify.com/shop-assets/static_uploads/mini_apps/mini-placeholder-icon.png",
|
|
5
|
+
"shopify_app_ids": [],
|
|
6
|
+
"description": "Mini App Description",
|
|
7
|
+
"entry_points": [
|
|
8
|
+
{
|
|
9
|
+
"type": "ACTION_BUTTON",
|
|
10
|
+
"location": "PRODUCT_PAGE",
|
|
11
|
+
"images": {
|
|
12
|
+
"default_value": []
|
|
13
|
+
},
|
|
14
|
+
"call_to_action_text": {
|
|
15
|
+
"default_value": "Open __MINI_APP_NAME__"
|
|
16
|
+
},
|
|
17
|
+
"visibility": {
|
|
18
|
+
"owner_type": "PRODUCT",
|
|
19
|
+
"namespace": "__MINI_APP_HANDLE_KEBAB_CASE__",
|
|
20
|
+
"key": "available"
|
|
21
|
+
},
|
|
22
|
+
"visibility_rule": {
|
|
23
|
+
"owner_type": "SHOP",
|
|
24
|
+
"namespace": "__MINI_APP_HANDLE_KEBAB_CASE__",
|
|
25
|
+
"key": "product_entry_point_rule"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"baseUrl": ".",
|
|
4
|
+
"paths": {
|
|
5
|
+
"*": ["*", "*.ios", "*.android"],
|
|
6
|
+
},
|
|
7
|
+
"allowJs": true,
|
|
8
|
+
"resolveJsonModule": true,
|
|
9
|
+
"allowSyntheticDefaultImports": true,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"isolatedModules": false,
|
|
12
|
+
"jsx": "preserve",
|
|
13
|
+
"lib": ["es2019"],
|
|
14
|
+
"noUnusedParameters": true,
|
|
15
|
+
"noUnusedLocals": true,
|
|
16
|
+
"moduleResolution": "node",
|
|
17
|
+
"noEmit": true,
|
|
18
|
+
"incremental": true,
|
|
19
|
+
"strict": true,
|
|
20
|
+
"target": "esnext",
|
|
21
|
+
"skipLibCheck": true,
|
|
22
|
+
"noImplicitReturns": false,
|
|
23
|
+
"noFallthroughCasesInSwitch": true,
|
|
24
|
+
"allowUnreachableCode": false,
|
|
25
|
+
"allowUnusedLabels": false,
|
|
26
|
+
"noImplicitAny": true,
|
|
27
|
+
"strictNullChecks": true,
|
|
28
|
+
"strictFunctionTypes": true,
|
|
29
|
+
"strictBindCallApply": true,
|
|
30
|
+
"strictPropertyInitialization": true,
|
|
31
|
+
"noImplicitThis": true,
|
|
32
|
+
"alwaysStrict": true,
|
|
33
|
+
"useUnknownInCatchVariables": false
|
|
34
|
+
},
|
|
35
|
+
"exclude": ["node_modules"]
|
|
36
|
+
}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg width="15" height="23" viewBox="0 0 15 23" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_532_7940)">
|
|
3
|
+
<path d="M7.5 11.4711C7.5 10.4766 7.89509 9.52274 8.59835 8.81948C9.30161 8.11622 10.2554 7.72113 11.25 7.72113C12.2446 7.72113 13.1984 8.11622 13.9017 8.81948C14.6049 9.52274 15 10.4766 15 11.4711C15 12.4657 14.6049 13.4195 13.9017 14.1228C13.1984 14.826 12.2446 15.2211 11.25 15.2211C10.2554 15.2211 9.30161 14.826 8.59835 14.1228C7.89509 13.4195 7.5 12.4657 7.5 11.4711Z" fill="#1ABCFE"/>
|
|
4
|
+
<path d="M0 18.9711C0 17.9766 0.395088 17.0227 1.09835 16.3195C1.80161 15.6162 2.75544 15.2211 3.75 15.2211H7.5V18.9711C7.5 19.9657 7.10491 20.9195 6.40165 21.6228C5.69839 22.326 4.74456 22.7211 3.75 22.7211C2.75544 22.7211 1.80161 22.326 1.09835 21.6228C0.395088 20.9195 0 19.9657 0 18.9711Z" fill="#0ACF83"/>
|
|
5
|
+
<path d="M7.5 0.22113V7.72113H11.25C12.2446 7.72113 13.1984 7.32604 13.9017 6.62278C14.6049 5.91952 15 4.96569 15 3.97113C15 2.97657 14.6049 2.02274 13.9017 1.31948C13.1984 0.616219 12.2446 0.22113 11.25 0.22113L7.5 0.22113Z" fill="#FF7262"/>
|
|
6
|
+
<path d="M0 3.97113C0 4.96569 0.395088 5.91952 1.09835 6.62278C1.80161 7.32604 2.75544 7.72113 3.75 7.72113H7.5V0.22113H3.75C2.75544 0.22113 1.80161 0.616219 1.09835 1.31948C0.395088 2.02274 0 2.97657 0 3.97113Z" fill="#F24E1E"/>
|
|
7
|
+
<path d="M0 11.4711C0 12.4657 0.395088 13.4195 1.09835 14.1228C1.80161 14.826 2.75544 15.2211 3.75 15.2211H7.5V7.72113H3.75C2.75544 7.72113 1.80161 8.11622 1.09835 8.81948C0.395088 9.52274 0 10.4766 0 11.4711Z" fill="#A259FF"/>
|
|
8
|
+
</g>
|
|
9
|
+
<defs>
|
|
10
|
+
<clipPath id="clip0_532_7940">
|
|
11
|
+
<rect width="15" height="22.5" fill="white" transform="translate(0 0.22113)"/>
|
|
12
|
+
</clipPath>
|
|
13
|
+
</defs>
|
|
14
|
+
</svg>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg width="164" height="46" viewBox="0 0 164 46" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M12.0288 18.2598C7.97006 17.3793 6.16191 17.0348 6.16191 15.4708C6.16191 13.9997 7.38555 13.2669 9.83283 13.2669C11.9851 13.2669 13.5584 14.2075 14.7165 16.0504C14.8039 16.1926 14.9841 16.2418 15.1316 16.1653L19.6984 13.8575C19.8623 13.7755 19.9224 13.5677 19.8295 13.4091C17.934 10.1224 14.4324 8.32324 9.82191 8.32324C3.76379 8.32324 0 11.3091 0 16.0559C0 21.098 4.58319 22.3722 8.64743 23.2527C12.7117 24.1331 14.5253 24.4776 14.5253 26.0417C14.5253 27.6057 13.2033 28.344 10.5648 28.344C8.12848 28.344 6.32033 27.2284 5.22779 25.0628C5.14585 24.9042 4.95466 24.8386 4.79624 24.9206L0.240358 27.1791C0.0819403 27.2612 0.0163881 27.4526 0.0983284 27.6166C1.90648 31.2533 5.61564 33.2986 10.5703 33.2986C16.8797 33.2986 20.6927 30.3619 20.6927 25.4675C20.6927 20.573 16.0876 19.1512 12.0288 18.2707V18.2598Z" fill="#5433EB"/>
|
|
3
|
+
<path d="M36.5018 8.32341C33.9125 8.32341 31.6236 9.24214 29.9794 10.8773C29.8756 10.9757 29.7062 10.9046 29.7062 10.7624V0.322772C29.7062 0.142307 29.5642 0.00012207 29.3839 0.00012207H23.67C23.4897 0.00012207 23.3477 0.142307 23.3477 0.322772V32.7245C23.3477 32.905 23.4897 33.0472 23.67 33.0472H29.3839C29.5642 33.0472 29.7062 32.905 29.7062 32.7245V18.5115C29.7062 15.7662 31.8094 13.6608 34.6445 13.6608C37.4796 13.6608 39.5336 15.7225 39.5336 18.5115V32.7245C39.5336 32.905 39.6756 33.0472 39.8559 33.0472H45.5699C45.7501 33.0472 45.8922 32.905 45.8922 32.7245V18.5115C45.8922 12.5397 41.9809 8.32887 36.5018 8.32887V8.32341Z" fill="#5433EB"/>
|
|
4
|
+
<path d="M57.495 7.39915C54.3922 7.39915 51.4751 8.34522 49.3883 9.71785C49.2463 9.81082 49.1971 10.0022 49.2846 10.1499L51.8028 14.4537C51.8957 14.6068 52.0924 14.6615 52.2453 14.5685C53.8295 13.6115 55.6431 13.1139 57.495 13.1248C62.4824 13.1248 66.1479 16.6466 66.1479 21.3005C66.1479 25.2652 63.2144 28.2019 59.4943 28.2019C56.4625 28.2019 54.3594 26.4355 54.3594 23.9418C54.3594 22.5145 54.9657 21.3442 56.5445 20.5184C56.7083 20.4309 56.7684 20.2286 56.6701 20.07L54.2938 16.0451C54.2174 15.9138 54.0535 15.8537 53.906 15.9084C50.7212 17.0896 48.487 19.9333 48.487 23.7504C48.487 29.5253 53.0811 33.8346 59.4888 33.8346C66.9727 33.8346 72.3535 28.6448 72.3535 21.202C72.3535 13.2233 66.0932 7.39368 57.484 7.39368L57.495 7.39915Z" fill="#5433EB"/>
|
|
5
|
+
<path d="M89.0646 8.27964C86.1749 8.27964 83.5965 9.34603 81.7119 11.2272C81.6081 11.3311 81.4387 11.2546 81.4387 11.1124V8.84838C81.4387 8.66791 81.2967 8.52573 81.1164 8.52573H75.55C75.3697 8.52573 75.2277 8.66791 75.2277 8.84838V41.2009C75.2277 41.3814 75.3697 41.5236 75.55 41.5236H81.2639C81.4442 41.5236 81.5862 41.3814 81.5862 41.2009V30.5917C81.5862 30.4495 81.7556 30.3784 81.8594 30.4714C83.7385 32.2214 86.224 33.244 89.0701 33.244C95.7728 33.244 101.001 27.8137 101.001 20.7591C101.001 13.7045 95.7674 8.27417 89.0701 8.27417L89.0646 8.27964ZM87.9885 27.7644C84.1755 27.7644 81.2858 24.7293 81.2858 20.7153C81.2858 16.7014 84.1701 13.6663 87.9885 13.6663C91.8069 13.6663 94.6857 16.6521 94.6857 20.7153C94.6857 24.7786 91.8451 27.7644 87.983 27.7644H87.9885Z" fill="#5433EB"/>
|
|
6
|
+
<path d="M118.125 28.2617V17.1377L122.877 28.2617H125.037L129.807 17.1377V28.2617H132.003V14.2217H128.583L123.957 25.3997L119.349 14.2217H115.929V28.2617H118.125ZM135.649 17.5697C136.441 17.5697 137.089 16.9577 137.089 16.1477C137.089 15.3377 136.477 14.7257 135.649 14.7257C134.839 14.7257 134.209 15.3377 134.209 16.1477C134.209 16.9577 134.839 17.5697 135.649 17.5697ZM136.711 28.2617V18.9017H134.605V28.2617H136.711ZM141.19 28.2617V23.5817C141.19 21.7277 142.18 20.4317 143.728 20.4317C145.024 20.4317 145.744 21.3677 145.744 22.8617V28.2617H147.886V22.7717C147.886 20.0357 146.734 18.6137 144.43 18.6137C142.9 18.6137 141.838 19.3337 141.19 20.4137V18.9017H139.066V28.2617H141.19ZM151.162 17.5697C151.954 17.5697 152.602 16.9577 152.602 16.1477C152.602 15.3377 151.99 14.7257 151.162 14.7257C150.352 14.7257 149.722 15.3377 149.722 16.1477C149.722 16.9577 150.352 17.5697 151.162 17.5697ZM152.224 28.2617V18.9017H150.118V28.2617H152.224ZM158.539 28.5497C161.095 28.5497 162.661 27.4157 162.661 25.6337C162.661 21.6197 156.595 23.6357 156.595 21.5117C156.595 20.7197 157.279 20.1617 158.467 20.1617C159.763 20.1617 160.555 20.8097 160.609 21.8897H162.643C162.499 19.8737 160.969 18.6137 158.629 18.6137C156.055 18.6137 154.489 19.8197 154.489 21.6017C154.489 25.5077 160.555 23.4557 160.555 25.6877C160.555 26.4257 159.835 27.0017 158.611 27.0017C157.243 27.0017 156.325 26.3897 156.271 25.3277H154.219C154.273 27.3257 155.911 28.5497 158.539 28.5497Z" fill="#0F1721"/>
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {Box, Icon, Text} from '@shopify/shop-minis-platform-sdk'
|
|
2
|
+
import {TouchableOpacity, Linking} from 'react-native'
|
|
3
|
+
|
|
4
|
+
import FigmaLogo from '../assets/figma-logo.svg'
|
|
5
|
+
|
|
6
|
+
const SHOP_MINIS_UI_KIT_URL =
|
|
7
|
+
'https://www.figma.com/community/file/1203047147438982192'
|
|
8
|
+
|
|
9
|
+
export const ButtonCTA = () => {
|
|
10
|
+
return (
|
|
11
|
+
<TouchableOpacity onPress={() => Linking.openURL(SHOP_MINIS_UI_KIT_URL)}>
|
|
12
|
+
<Box
|
|
13
|
+
justifyContent="space-between"
|
|
14
|
+
flexDirection="row"
|
|
15
|
+
alignItems="center"
|
|
16
|
+
borderRadius={36}
|
|
17
|
+
backgroundColor="tertiary-button-background"
|
|
18
|
+
paddingHorizontal="m"
|
|
19
|
+
paddingVertical="s"
|
|
20
|
+
>
|
|
21
|
+
<Box flexDirection="row">
|
|
22
|
+
<FigmaLogo />
|
|
23
|
+
<Text ml="xs" variant="buttonLarge">
|
|
24
|
+
Shop Minis UI Kit
|
|
25
|
+
</Text>
|
|
26
|
+
</Box>
|
|
27
|
+
<Icon name="launch" />
|
|
28
|
+
</Box>
|
|
29
|
+
</TouchableOpacity>
|
|
30
|
+
)
|
|
31
|
+
}
|