Skip to content

Commit 34e6ed3

Browse files
committed
feat(share): web
1 parent ae4bd5c commit 34e6ed3

File tree

6 files changed

+106
-12
lines changed

6 files changed

+106
-12
lines changed

packages/navi/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,6 @@
112112
},
113113
"gitHead": "57203ed1725b209e814da7cfbb71b36f52d24210",
114114
"dependencies": {
115-
"@mj-studio/js-util": "1.1.2"
115+
"@mj-studio/js-util": "1.1.3"
116116
}
117117
}

packages/share/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,5 +108,8 @@
108108
"javaPackageName": "net.mjstudio.rnkakao.share"
109109
}
110110
},
111-
"gitHead": "57203ed1725b209e814da7cfbb71b36f52d24210"
111+
"gitHead": "57203ed1725b209e814da7cfbb71b36f52d24210",
112+
"dependencies": {
113+
"@mj-studio/js-util": "1.1.3"
114+
}
112115
}

packages/share/src/index.web.ts

Lines changed: 91 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { filterNonNullishKeys, snakeCaseObject } from '@mj-studio/js-util';
12
import { kRunWebAPI } from '@react-native-kakao/core';
23

34
import type { KakaoShareAPI } from './index';
@@ -10,7 +11,63 @@ declare const Kakao: {
1011
API: { request: (args: any) => Promise<any> };
1112
};
1213

13-
// @ts-ignore
14+
function createShareDefault({
15+
serverCallbackArgs,
16+
template,
17+
objectType,
18+
}: {
19+
objectType: string;
20+
template: any;
21+
serverCallbackArgs?: Record<string, string>;
22+
}) {
23+
return kRunWebAPI(() =>
24+
Kakao.Share.sendDefault({
25+
objectType,
26+
...template,
27+
serverCallbackArgs,
28+
}),
29+
);
30+
}
31+
32+
function createSendDefaultMe({ template, objectType }: { objectType: string; template: any }) {
33+
return kRunWebAPI(() =>
34+
Kakao.API.request({
35+
url: '/v2/api/talk/memo/default/send',
36+
data: {
37+
template_object: snakeCaseObject({
38+
objectType,
39+
...template,
40+
}),
41+
},
42+
}),
43+
);
44+
}
45+
46+
function createSendDefaultFriends({
47+
objectType,
48+
template,
49+
receiverUuids,
50+
}: {
51+
template: any;
52+
objectType: any;
53+
receiverUuids: string[];
54+
}) {
55+
return kRunWebAPI(() =>
56+
Kakao.API.request({
57+
url: '/v1/api/talk/friends/message/default/send',
58+
data: {
59+
template_object: snakeCaseObject(
60+
filterNonNullishKeys({
61+
objectType,
62+
...template,
63+
}),
64+
),
65+
receiver_uuids: receiverUuids,
66+
},
67+
}),
68+
);
69+
}
70+
1471
const KakaoShare: KakaoShareAPI = {
1572
shareCustomTemplate: ({ templateArgs, templateId, serverCallbackArgs }) =>
1673
kRunWebAPI(() =>
@@ -38,6 +95,39 @@ const KakaoShare: KakaoShareAPI = {
3895
},
3996
}),
4097
),
98+
shareFeedTemplate: ({ template, serverCallbackArgs }) =>
99+
createShareDefault({ template, serverCallbackArgs, objectType: 'feed' }),
100+
sendFeedTemplateToMe: ({ template }) => createSendDefaultMe({ template, objectType: 'feed' }),
101+
sendFeedTemplateToFriends: ({ template, receiverUuids }) =>
102+
createSendDefaultFriends({ template, receiverUuids, objectType: 'feed' }),
103+
shareListTemplate: ({ template, serverCallbackArgs }) =>
104+
createShareDefault({ template, serverCallbackArgs, objectType: 'list' }),
105+
sendListTemplateToMe: ({ template }) => createSendDefaultMe({ template, objectType: 'list' }),
106+
sendListTemplateToFriends: ({ template, receiverUuids }) =>
107+
createSendDefaultFriends({ template, receiverUuids, objectType: 'list' }),
108+
shareLocationTemplate: ({ template, serverCallbackArgs }) =>
109+
createShareDefault({ template, serverCallbackArgs, objectType: 'location' }),
110+
sendLocationTemplateToMe: ({ template }) =>
111+
createSendDefaultMe({ template, objectType: 'location' }),
112+
sendLocationTemplateToFriends: ({ template, receiverUuids }) =>
113+
createSendDefaultFriends({ template, receiverUuids, objectType: 'location' }),
114+
shareCommerceTemplate: ({ template, serverCallbackArgs }) =>
115+
createShareDefault({ template, serverCallbackArgs, objectType: 'commerce' }),
116+
sendCommerceTemplateToMe: ({ template }) =>
117+
createSendDefaultMe({ template, objectType: 'commerce' }),
118+
sendCommerceTemplateToFriends: ({ template, receiverUuids }) =>
119+
createSendDefaultFriends({ template, receiverUuids, objectType: 'commerce' }),
120+
shareTextTemplate: ({ template, serverCallbackArgs }) =>
121+
createShareDefault({ template, serverCallbackArgs, objectType: 'text' }),
122+
sendTextTemplateToMe: ({ template }) => createSendDefaultMe({ template, objectType: 'text' }),
123+
sendTextTemplateToFriends: ({ template, receiverUuids }) =>
124+
createSendDefaultFriends({ template, receiverUuids, objectType: 'text' }),
125+
shareCalendarTemplate: ({ template, serverCallbackArgs }) =>
126+
createShareDefault({ template, serverCallbackArgs, objectType: 'calendar' }),
127+
sendCalendarTemplateToMe: ({ template }) =>
128+
createSendDefaultMe({ template, objectType: 'calendar' }),
129+
sendCalendarTemplateToFriends: ({ template, receiverUuids }) =>
130+
createSendDefaultFriends({ template, receiverUuids, objectType: 'calendar' }),
41131
};
42132
export const {
43133
sendCalendarTemplateToFriends,

packages/social/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,6 @@
114114
},
115115
"gitHead": "57203ed1725b209e814da7cfbb71b36f52d24210",
116116
"dependencies": {
117-
"@mj-studio/js-util": "1.1.2"
117+
"@mj-studio/js-util": "1.1.3"
118118
}
119119
}

packages/user/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,6 @@
112112
},
113113
"gitHead": "57203ed1725b209e814da7cfbb71b36f52d24210",
114114
"dependencies": {
115-
"@mj-studio/js-util": "1.1.2"
115+
"@mj-studio/js-util": "1.1.3"
116116
}
117117
}

yarn.lock

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3972,10 +3972,10 @@ __metadata:
39723972
languageName: node
39733973
linkType: hard
39743974

3975-
"@mj-studio/js-util@npm:1.1.2":
3976-
version: 1.1.2
3977-
resolution: "@mj-studio/js-util@npm:1.1.2"
3978-
checksum: 10/9193d2822cb8efb14ed73d11ec9e3050d677b037ae3200c1fc762db1555f493bcbc41410dc037fcb9664e039fa0704772bd37bd7547f8d6ad66d0224c2406bfc
3975+
"@mj-studio/js-util@npm:1.1.3":
3976+
version: 1.1.3
3977+
resolution: "@mj-studio/js-util@npm:1.1.3"
3978+
checksum: 10/c93e52f33c65a7d58bdb7bfd8f5be72403e12489638946d939a1d64a1e3f05a40f92d8f9d763e7fc038034e0f696f1f1c9e2715f82af732f4b95c3c1eff666cf
39793979
languageName: node
39803980
linkType: hard
39813981

@@ -4777,7 +4777,7 @@ __metadata:
47774777
version: 0.0.0-use.local
47784778
resolution: "@react-native-kakao/navi@workspace:packages/navi"
47794779
dependencies:
4780-
"@mj-studio/js-util": "npm:1.1.2"
4780+
"@mj-studio/js-util": "npm:1.1.3"
47814781
"@react-native-kakao/core": "npm:2.1.0"
47824782
"@types/invariant": "npm:^2"
47834783
"@types/jest": "npm:^29.5.5"
@@ -4799,6 +4799,7 @@ __metadata:
47994799
version: 0.0.0-use.local
48004800
resolution: "@react-native-kakao/share@workspace:packages/share"
48014801
dependencies:
4802+
"@mj-studio/js-util": "npm:1.1.3"
48024803
"@react-native-kakao/core": "npm:2.1.0"
48034804
"@types/jest": "npm:^29.5.5"
48044805
"@types/react": "npm:^18.2.44"
@@ -4819,7 +4820,7 @@ __metadata:
48194820
version: 0.0.0-use.local
48204821
resolution: "@react-native-kakao/social@workspace:packages/social"
48214822
dependencies:
4822-
"@mj-studio/js-util": "npm:1.1.2"
4823+
"@mj-studio/js-util": "npm:1.1.3"
48234824
"@react-native-kakao/core": "npm:2.1.0"
48244825
"@types/invariant": "npm:^2"
48254826
"@types/jest": "npm:^29.5.5"
@@ -4841,7 +4842,7 @@ __metadata:
48414842
version: 0.0.0-use.local
48424843
resolution: "@react-native-kakao/user@workspace:packages/user"
48434844
dependencies:
4844-
"@mj-studio/js-util": "npm:1.1.2"
4845+
"@mj-studio/js-util": "npm:1.1.3"
48454846
"@react-native-kakao/core": "npm:2.1.0"
48464847
"@types/invariant": "npm:^2"
48474848
"@types/jest": "npm:^29.5.5"

0 commit comments

Comments
 (0)