webs-sdk 0.18.68 → 0.18.71
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 +451 -451
- package/dist/components/ARFilters/ARFilters.js +54 -54
- package/dist/components/AvatarAI.js +6 -6
- package/dist/components/CookieConsent/constants.js +31 -31
- package/dist/components/CreativeFaceSwap.js +12 -12
- package/dist/components/MemeGenerator.js +12 -12
- package/dist/components/PasswordReset/constants.js +33 -33
- package/dist/components/SpinningWheel/SpinningWheel.js +7 -7
- package/dist/components/Wallpapers.d.ts +2 -1
- package/dist/components/Wallpapers.d.ts.map +1 -1
- package/dist/components/Wallpapers.js +2 -2
- package/dist/components/Wallpapers.js.map +1 -1
- package/dist/components/for-you/ForYouPage.d.ts +30 -1
- package/dist/components/for-you/ForYouPage.d.ts.map +1 -1
- package/dist/components/for-you/ForYouPage.js +200 -47
- package/dist/components/for-you/ForYouPage.js.map +1 -1
- package/dist/components/for-you/api/forYouFetch.d.ts +48 -0
- package/dist/components/for-you/api/forYouFetch.d.ts.map +1 -0
- package/dist/components/for-you/api/forYouFetch.js +147 -0
- package/dist/components/for-you/api/forYouFetch.js.map +1 -0
- package/dist/components/for-you/hooks/useMemeGenerator.d.ts +19 -18
- package/dist/components/for-you/hooks/useMemeGenerator.d.ts.map +1 -1
- package/dist/components/for-you/hooks/useMemeGenerator.js +92 -87
- package/dist/components/for-you/hooks/useMemeGenerator.js.map +1 -1
- package/dist/components/for-you/hooks/useQuiz.d.ts +4 -1
- package/dist/components/for-you/hooks/useQuiz.d.ts.map +1 -1
- package/dist/components/for-you/hooks/useQuiz.js +15 -55
- package/dist/components/for-you/hooks/useQuiz.js.map +1 -1
- package/dist/components/for-you/hooks/useStickers.d.ts +5 -1
- package/dist/components/for-you/hooks/useStickers.d.ts.map +1 -1
- package/dist/components/for-you/hooks/useStickers.js +12 -13
- package/dist/components/for-you/hooks/useStickers.js.map +1 -1
- package/dist/components/for-you/hooks/useWallpapers.d.ts +6 -1
- package/dist/components/for-you/hooks/useWallpapers.d.ts.map +1 -1
- package/dist/components/for-you/hooks/useWallpapers.js +17 -12
- package/dist/components/for-you/hooks/useWallpapers.js.map +1 -1
- package/dist/components/for-you/hooks/useWallpapersName.d.ts +6 -1
- package/dist/components/for-you/hooks/useWallpapersName.d.ts.map +1 -1
- package/dist/components/for-you/hooks/useWallpapersName.js +14 -12
- package/dist/components/for-you/hooks/useWallpapersName.js.map +1 -1
- package/dist/components/for-you/i18n/forYouTranslations.d.ts +8 -0
- package/dist/components/for-you/i18n/forYouTranslations.d.ts.map +1 -0
- package/dist/components/for-you/i18n/forYouTranslations.js +432 -0
- package/dist/components/for-you/i18n/forYouTranslations.js.map +1 -0
- package/dist/components/for-you/index.d.ts +4 -1
- package/dist/components/for-you/index.d.ts.map +1 -1
- package/dist/components/for-you/index.js +12 -1
- package/dist/components/for-you/index.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -20
- package/dist/index.js.map +1 -1
- package/package.json +79 -79
- package/public/spin2win/assets/border-afristream.svg +26 -26
- package/public/spin2win/assets/border-efc.svg +23 -23
- package/public/spin2win/assets/border-totalgym.svg +27 -27
- package/public/spin2win/assets/border-womantoday.svg +26 -26
- package/public/spin2win/assets/indicator-afristream.svg +28 -28
- package/public/spin2win/assets/indicator-efc.svg +29 -29
- package/public/spin2win/assets/indicator-totalgym.svg +29 -29
- package/public/spin2win/fonts/switzer/README.md +22 -22
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.buildPresetUrl = buildPresetUrl;
|
|
15
|
+
exports.normalizeApiResponse = normalizeApiResponse;
|
|
16
|
+
exports.deduplicateById = deduplicateById;
|
|
17
|
+
exports.forYouFetch = forYouFetch;
|
|
18
|
+
const PRESET_PATHS = {
|
|
19
|
+
getGlobalContentsByTags: '/api/get_contents_by_tags',
|
|
20
|
+
getGlobalContentsByIDs: '/api/get_contents_by_tags',
|
|
21
|
+
getContentsByCategory: '/api/get_global_api_contents_by_category',
|
|
22
|
+
getCollectionByTags: '/api/get_global_api_collections_by_tags',
|
|
23
|
+
getContentPreset: '/api/content-preset',
|
|
24
|
+
};
|
|
25
|
+
function buildPresetUrl(apiBaseUrl, preset) {
|
|
26
|
+
var _a;
|
|
27
|
+
const path = (_a = PRESET_PATHS[preset]) !== null && _a !== void 0 ? _a : '/api/get_contents_by_tags';
|
|
28
|
+
const base = apiBaseUrl.replace(/\/$/, '');
|
|
29
|
+
return `${base}${path}`;
|
|
30
|
+
}
|
|
31
|
+
function buildPresetBody(preset) {
|
|
32
|
+
const base = {
|
|
33
|
+
language: preset.locale || 'en',
|
|
34
|
+
};
|
|
35
|
+
if (preset.website_id)
|
|
36
|
+
base.website_id = preset.website_id;
|
|
37
|
+
switch (preset.preset) {
|
|
38
|
+
case 'getGlobalContentsByTags':
|
|
39
|
+
return Object.assign(Object.assign({}, base), { tags: preset.tags, limit: preset.limit });
|
|
40
|
+
case 'getGlobalContentsByIDs':
|
|
41
|
+
return Object.assign(Object.assign({}, base), { include_ids: preset.includeIds });
|
|
42
|
+
case 'getContentsByCategory':
|
|
43
|
+
return Object.assign(Object.assign({}, base), { category: preset.category, limit: preset.limit });
|
|
44
|
+
case 'getCollectionByTags':
|
|
45
|
+
return Object.assign(Object.assign({}, base), { tags: preset.tags });
|
|
46
|
+
case 'getContentPreset': {
|
|
47
|
+
const { preset: _p, locale: _l, website_id: _w } = preset, rest = __rest(preset, ["preset", "locale", "website_id"]);
|
|
48
|
+
return Object.assign(Object.assign(Object.assign({}, base), { preset: preset.presetName }), rest);
|
|
49
|
+
}
|
|
50
|
+
default:
|
|
51
|
+
return base;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
function normalizeApiResponse(json) {
|
|
55
|
+
const j = json;
|
|
56
|
+
if (!j)
|
|
57
|
+
return [];
|
|
58
|
+
if (Array.isArray(j))
|
|
59
|
+
return j;
|
|
60
|
+
const d1 = j === null || j === void 0 ? void 0 : j.data;
|
|
61
|
+
if (d1) {
|
|
62
|
+
const d2 = d1 === null || d1 === void 0 ? void 0 : d1.data;
|
|
63
|
+
if (d2) {
|
|
64
|
+
const d3 = d2 === null || d2 === void 0 ? void 0 : d2.data;
|
|
65
|
+
if (Array.isArray(d3))
|
|
66
|
+
return d3;
|
|
67
|
+
if (d3 && typeof d3 === 'object')
|
|
68
|
+
return [d3];
|
|
69
|
+
}
|
|
70
|
+
if (Array.isArray(d1 === null || d1 === void 0 ? void 0 : d1.data))
|
|
71
|
+
return d1.data;
|
|
72
|
+
if (Array.isArray(d1 === null || d1 === void 0 ? void 0 : d1.contents))
|
|
73
|
+
return d1.contents;
|
|
74
|
+
if (Array.isArray(d1))
|
|
75
|
+
return d1;
|
|
76
|
+
if (typeof d1 === 'object' && d1 !== null) {
|
|
77
|
+
if ('id' in d1)
|
|
78
|
+
return [d1];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (Array.isArray(j === null || j === void 0 ? void 0 : j.contents))
|
|
82
|
+
return j.contents;
|
|
83
|
+
if (Array.isArray(j === null || j === void 0 ? void 0 : j.items))
|
|
84
|
+
return j.items;
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
function deduplicateById(items) {
|
|
88
|
+
const seen = new Set();
|
|
89
|
+
return items.filter((item) => {
|
|
90
|
+
const id = item === null || item === void 0 ? void 0 : item.id;
|
|
91
|
+
if (id === undefined || id === null)
|
|
92
|
+
return true;
|
|
93
|
+
if (seen.has(id))
|
|
94
|
+
return false;
|
|
95
|
+
seen.add(id);
|
|
96
|
+
return true;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
async function fetchSingle({ url, body }) {
|
|
100
|
+
try {
|
|
101
|
+
const response = await fetch(url, {
|
|
102
|
+
method: 'POST',
|
|
103
|
+
headers: { 'Content-Type': 'application/json' },
|
|
104
|
+
body: JSON.stringify(body),
|
|
105
|
+
});
|
|
106
|
+
if (!response.ok) {
|
|
107
|
+
console.error(`[forYouFetch] HTTP ${response.status} for ${url}`);
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
const data = await response.json();
|
|
111
|
+
return normalizeApiResponse(data);
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
console.error(`[forYouFetch] Fetch error for ${url}:`, err);
|
|
115
|
+
return [];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
async function forYouFetch(options) {
|
|
119
|
+
const { apiUrl, apiBaseUrl, tags, contents, locale = 'en', website_id, limit } = options;
|
|
120
|
+
if (contents && contents.length > 0) {
|
|
121
|
+
const baseUrl = apiUrl !== null && apiUrl !== void 0 ? apiUrl : (apiBaseUrl ? undefined : '/api/get_contents_by_tags');
|
|
122
|
+
const fetchPromises = contents.map(preset => {
|
|
123
|
+
const enrichedPreset = Object.assign(Object.assign({ locale: locale }, (website_id && { website_id })), preset);
|
|
124
|
+
const url = baseUrl
|
|
125
|
+
? baseUrl
|
|
126
|
+
: apiBaseUrl
|
|
127
|
+
? buildPresetUrl(apiBaseUrl, preset.preset)
|
|
128
|
+
: '/api/get_contents_by_tags';
|
|
129
|
+
const body = buildPresetBody(enrichedPreset);
|
|
130
|
+
return fetchSingle({ url, body });
|
|
131
|
+
});
|
|
132
|
+
const results = await Promise.all(fetchPromises);
|
|
133
|
+
const merged = results.flat();
|
|
134
|
+
return deduplicateById(merged);
|
|
135
|
+
}
|
|
136
|
+
const normalizedTags = tags
|
|
137
|
+
? Array.isArray(tags) ? tags : [tags]
|
|
138
|
+
: undefined;
|
|
139
|
+
const url = apiUrl
|
|
140
|
+
? apiUrl
|
|
141
|
+
: apiBaseUrl
|
|
142
|
+
? buildPresetUrl(apiBaseUrl, 'getGlobalContentsByTags')
|
|
143
|
+
: '/api/get_contents_by_tags';
|
|
144
|
+
const body = Object.assign(Object.assign(Object.assign({ language: locale }, (normalizedTags && normalizedTags.length > 0 && { tags: normalizedTags })), (website_id && { website_id })), (limit && { limit }));
|
|
145
|
+
return fetchSingle({ url, body });
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=forYouFetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forYouFetch.js","sourceRoot":"","sources":["../../../../src/components/for-you/api/forYouFetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +1,45 @@
|
|
|
1
|
+
import type { ForYouContentPreset } from '../api/forYouFetch';
|
|
1
2
|
export interface MemeHookItem {
|
|
2
|
-
id:
|
|
3
|
+
id: string | number;
|
|
3
4
|
name: string;
|
|
4
|
-
|
|
5
|
-
fullSizeImage?: string;
|
|
5
|
+
imageUrl: string;
|
|
6
6
|
}
|
|
7
7
|
export interface MemeHookFont {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
family
|
|
8
|
+
name: string;
|
|
9
|
+
url?: string;
|
|
10
|
+
family?: string;
|
|
11
11
|
}
|
|
12
12
|
export interface MemeGeneratorHookConfig {
|
|
13
|
-
apiUrl
|
|
13
|
+
apiUrl?: string;
|
|
14
|
+
apiBaseUrl?: string;
|
|
14
15
|
memeTag?: string;
|
|
16
|
+
tags?: string[];
|
|
15
17
|
locale?: string;
|
|
16
18
|
website_id?: string;
|
|
19
|
+
contents?: ForYouContentPreset[];
|
|
17
20
|
}
|
|
18
21
|
export interface UseMemeGeneratorOptions {
|
|
19
|
-
memes?: MemeHookItem[];
|
|
20
22
|
config?: Partial<MemeGeneratorHookConfig>;
|
|
23
|
+
memes?: MemeHookItem[];
|
|
21
24
|
fonts?: MemeHookFont[];
|
|
22
25
|
defaultMemeIndex?: number;
|
|
23
26
|
imageProxyUrl?: string;
|
|
24
27
|
onDownload?: (meme: MemeHookItem, topText: string, bottomText: string) => void;
|
|
25
28
|
}
|
|
26
29
|
export declare const DEFAULT_MEME_CONFIG: MemeGeneratorHookConfig;
|
|
27
|
-
export declare function useMemeGenerator({ memes: memesProp,
|
|
28
|
-
|
|
29
|
-
fonts: MemeHookFont[];
|
|
30
|
+
export declare function useMemeGenerator({ config, memes: memesProp, fonts: fontsProp, defaultMemeIndex, imageProxyUrl, onDownload, }?: UseMemeGeneratorOptions): {
|
|
31
|
+
allMemes: MemeHookItem[];
|
|
30
32
|
isLoading: boolean;
|
|
31
33
|
selectedMeme: MemeHookItem | null;
|
|
32
34
|
topText: string;
|
|
35
|
+
setTopText: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
33
36
|
bottomText: string;
|
|
34
|
-
|
|
37
|
+
setBottomText: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
35
38
|
isDownloading: boolean;
|
|
39
|
+
fonts: MemeHookFont[];
|
|
36
40
|
canvasRef: import("react").RefObject<HTMLCanvasElement | null>;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
setSelectedFont: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
41
|
-
handleDownload: () => Promise<void>;
|
|
42
|
-
renderCanvas: () => void;
|
|
41
|
+
selectMeme: (meme: MemeHookItem) => void;
|
|
42
|
+
drawMeme: () => Promise<string | null>;
|
|
43
|
+
download: () => Promise<void>;
|
|
43
44
|
};
|
|
44
45
|
//# sourceMappingURL=useMemeGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMemeGenerator.d.ts","sourceRoot":"","sources":["../../../../src/components/for-you/hooks/useMemeGenerator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useMemeGenerator.d.ts","sourceRoot":"","sources":["../../../../src/components/for-you/hooks/useMemeGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAI7D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IAKnB,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACzC,KAAK,CAAC,EAAE,YAAY,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/E;AAGD,eAAO,MAAM,mBAAmB,EAAE,uBAIjC,CAAA;AAmCD,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,EAChB,gBAAoB,EACpB,aAAa,EACb,UAAU,GACX,GAAE,uBAA4B;;;;;;;;;;;uBA4DS,YAAY;oBAMX,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;EA0E9D"}
|
|
@@ -3,124 +3,130 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DEFAULT_MEME_CONFIG = void 0;
|
|
4
4
|
exports.useMemeGenerator = useMemeGenerator;
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const forYouFetch_1 = require("../api/forYouFetch");
|
|
6
7
|
exports.DEFAULT_MEME_CONFIG = {
|
|
7
8
|
apiUrl: '/api/get_contents_by_tags',
|
|
8
9
|
memeTag: 'meme',
|
|
9
10
|
locale: 'en',
|
|
10
11
|
};
|
|
11
|
-
const
|
|
12
|
-
{
|
|
13
|
-
{
|
|
14
|
-
{
|
|
15
|
-
{ id: 'LUCKIEST', label: 'LUCKIEST', family: '"Luckiest Guy", Impact, sans-serif' },
|
|
12
|
+
const DEFAULT_FONTS = [
|
|
13
|
+
{ name: 'Impact', family: 'Impact, sans-serif' },
|
|
14
|
+
{ name: 'Bangers', family: 'Bangers, cursive' },
|
|
15
|
+
{ name: 'Arial Black', family: '"Arial Black", sans-serif' },
|
|
16
16
|
];
|
|
17
|
-
function
|
|
17
|
+
function toMemeItem(item) {
|
|
18
18
|
var _a;
|
|
19
|
+
const imageUrl = item.thumbnail || ((_a = item.images) === null || _a === void 0 ? void 0 : _a.img1) || item.imageUrl || '';
|
|
20
|
+
if (!imageUrl)
|
|
21
|
+
return null;
|
|
22
|
+
return {
|
|
23
|
+
id: item.id,
|
|
24
|
+
name: item.title || item.name || `Meme ${item.id}`,
|
|
25
|
+
imageUrl,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function useMemeGenerator({ config, memes: memesProp, fonts: fontsProp, defaultMemeIndex = 0, imageProxyUrl, onDownload, } = {}) {
|
|
19
29
|
const mergedConfig = Object.assign(Object.assign({}, exports.DEFAULT_MEME_CONFIG), config);
|
|
20
|
-
const
|
|
21
|
-
const [
|
|
30
|
+
const locale = mergedConfig.locale || 'en';
|
|
31
|
+
const [allMemes, setAllMemes] = (0, react_1.useState)(memesProp || []);
|
|
22
32
|
const [isLoading, setIsLoading] = (0, react_1.useState)(!memesProp);
|
|
23
33
|
const [selectedMeme, setSelectedMeme] = (0, react_1.useState)(null);
|
|
24
34
|
const [topText, setTopText] = (0, react_1.useState)('');
|
|
25
35
|
const [bottomText, setBottomText] = (0, react_1.useState)('');
|
|
26
|
-
const [selectedFont, setSelectedFont] = (0, react_1.useState)(((_a = fonts[0]) === null || _a === void 0 ? void 0 : _a.id) || 'IMPACT');
|
|
27
36
|
const [isDownloading, setIsDownloading] = (0, react_1.useState)(false);
|
|
28
37
|
const canvasRef = (0, react_1.useRef)(null);
|
|
29
38
|
(0, react_1.useEffect)(() => {
|
|
30
|
-
if (memesProp
|
|
31
|
-
|
|
32
|
-
setSelectedMeme(memesProp[defaultMemeIndex] || memesProp[0]);
|
|
39
|
+
if (memesProp) {
|
|
40
|
+
setAllMemes(memesProp);
|
|
33
41
|
setIsLoading(false);
|
|
34
42
|
return;
|
|
35
43
|
}
|
|
36
44
|
const fetchMemes = async () => {
|
|
37
|
-
var _a;
|
|
38
45
|
try {
|
|
39
46
|
setIsLoading(true);
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
47
|
+
const tagsToUse = mergedConfig.contents ? undefined :
|
|
48
|
+
mergedConfig.tags ? mergedConfig.tags :
|
|
49
|
+
mergedConfig.memeTag ? [mergedConfig.memeTag] :
|
|
50
|
+
['meme'];
|
|
51
|
+
const items = await (0, forYouFetch_1.forYouFetch)({
|
|
52
|
+
apiUrl: mergedConfig.apiUrl,
|
|
53
|
+
apiBaseUrl: mergedConfig.apiBaseUrl,
|
|
54
|
+
tags: tagsToUse,
|
|
55
|
+
contents: mergedConfig.contents,
|
|
56
|
+
locale,
|
|
57
|
+
website_id: mergedConfig.website_id,
|
|
44
58
|
});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const data = await response.json();
|
|
48
|
-
const items = (Array.isArray((_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.data) && data.data.data) ||
|
|
49
|
-
(Array.isArray(data === null || data === void 0 ? void 0 : data.data) && data.data) ||
|
|
50
|
-
[];
|
|
51
|
-
const mapped = items.map((item, idx) => {
|
|
52
|
-
var _a, _b;
|
|
53
|
-
return ({
|
|
54
|
-
id: item.id || `meme-${idx}`,
|
|
55
|
-
name: item.title || item.name || `Meme ${idx + 1}`,
|
|
56
|
-
image: item.thumbnail || ((_a = item.images) === null || _a === void 0 ? void 0 : _a.img1) || '',
|
|
57
|
-
fullSizeImage: ((_b = item.images) === null || _b === void 0 ? void 0 : _b.img1) || item.imageUrl || item.thumbnail || '',
|
|
58
|
-
});
|
|
59
|
-
}).filter((m) => m.image);
|
|
60
|
-
setMemes(mapped);
|
|
61
|
-
setSelectedMeme(mapped[defaultMemeIndex] || mapped[0] || null);
|
|
59
|
+
const mapped = items.map(toMemeItem).filter(Boolean);
|
|
60
|
+
setAllMemes(mapped);
|
|
62
61
|
}
|
|
63
62
|
catch (err) {
|
|
64
63
|
console.error('useMemeGenerator: Error fetching memes:', err);
|
|
65
|
-
|
|
64
|
+
setAllMemes([]);
|
|
66
65
|
}
|
|
67
66
|
finally {
|
|
68
67
|
setIsLoading(false);
|
|
69
68
|
}
|
|
70
69
|
};
|
|
71
70
|
fetchMemes();
|
|
72
|
-
}, [mergedConfig.apiUrl, mergedConfig.memeTag, mergedConfig.locale]);
|
|
73
|
-
const renderCanvas = (0, react_1.useCallback)(() => {
|
|
74
|
-
const canvas = canvasRef.current;
|
|
75
|
-
if (!canvas || !selectedMeme)
|
|
76
|
-
return;
|
|
77
|
-
const ctx = canvas.getContext('2d');
|
|
78
|
-
if (!ctx)
|
|
79
|
-
return;
|
|
80
|
-
const img = new Image();
|
|
81
|
-
img.crossOrigin = 'anonymous';
|
|
82
|
-
const src = imageProxyUrl
|
|
83
|
-
? `${imageProxyUrl}${encodeURIComponent(selectedMeme.fullSizeImage || selectedMeme.image)}`
|
|
84
|
-
: selectedMeme.fullSizeImage || selectedMeme.image;
|
|
85
|
-
img.onload = () => {
|
|
86
|
-
canvas.width = img.naturalWidth;
|
|
87
|
-
canvas.height = img.naturalHeight;
|
|
88
|
-
ctx.drawImage(img, 0, 0);
|
|
89
|
-
const font = fonts.find(f => f.id === selectedFont) || fonts[0];
|
|
90
|
-
const fontSize = Math.max(canvas.width * 0.07, 28);
|
|
91
|
-
ctx.font = `900 ${fontSize}px ${font.family}`;
|
|
92
|
-
ctx.textAlign = 'center';
|
|
93
|
-
ctx.lineWidth = fontSize * 0.12;
|
|
94
|
-
ctx.strokeStyle = '#000';
|
|
95
|
-
ctx.fillStyle = '#fff';
|
|
96
|
-
if (topText) {
|
|
97
|
-
ctx.strokeText(topText.toUpperCase(), canvas.width / 2, fontSize * 1.1);
|
|
98
|
-
ctx.fillText(topText.toUpperCase(), canvas.width / 2, fontSize * 1.1);
|
|
99
|
-
}
|
|
100
|
-
if (bottomText) {
|
|
101
|
-
ctx.strokeText(bottomText.toUpperCase(), canvas.width / 2, canvas.height - fontSize * 0.3);
|
|
102
|
-
ctx.fillText(bottomText.toUpperCase(), canvas.width / 2, canvas.height - fontSize * 0.3);
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
img.src = src;
|
|
106
|
-
}, [selectedMeme, topText, bottomText, selectedFont, fonts, imageProxyUrl]);
|
|
71
|
+
}, [mergedConfig.apiUrl, mergedConfig.apiBaseUrl, mergedConfig.memeTag, mergedConfig.locale]);
|
|
107
72
|
(0, react_1.useEffect)(() => {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
73
|
+
if (allMemes.length > 0 && !selectedMeme) {
|
|
74
|
+
setSelectedMeme(allMemes[Math.min(defaultMemeIndex, allMemes.length - 1)]);
|
|
75
|
+
}
|
|
76
|
+
}, [allMemes, selectedMeme, defaultMemeIndex]);
|
|
77
|
+
const selectMeme = (0, react_1.useCallback)((meme) => {
|
|
111
78
|
setSelectedMeme(meme);
|
|
112
79
|
setTopText('');
|
|
113
80
|
setBottomText('');
|
|
114
|
-
};
|
|
115
|
-
const
|
|
81
|
+
}, []);
|
|
82
|
+
const drawMeme = (0, react_1.useCallback)(async () => {
|
|
116
83
|
if (!selectedMeme || !canvasRef.current)
|
|
84
|
+
return null;
|
|
85
|
+
const canvas = canvasRef.current;
|
|
86
|
+
const ctx = canvas.getContext('2d');
|
|
87
|
+
if (!ctx)
|
|
88
|
+
return null;
|
|
89
|
+
return new Promise(resolve => {
|
|
90
|
+
const img = new Image();
|
|
91
|
+
img.crossOrigin = 'anonymous';
|
|
92
|
+
const src = imageProxyUrl
|
|
93
|
+
? `${imageProxyUrl}${encodeURIComponent(selectedMeme.imageUrl)}`
|
|
94
|
+
: selectedMeme.imageUrl;
|
|
95
|
+
img.src = src;
|
|
96
|
+
img.onload = () => {
|
|
97
|
+
canvas.width = img.width;
|
|
98
|
+
canvas.height = img.height;
|
|
99
|
+
ctx.drawImage(img, 0, 0);
|
|
100
|
+
const fontSize = Math.max(20, img.width / 14);
|
|
101
|
+
ctx.font = `bold ${fontSize}px Impact, sans-serif`;
|
|
102
|
+
ctx.textAlign = 'center';
|
|
103
|
+
ctx.strokeStyle = 'black';
|
|
104
|
+
ctx.lineWidth = fontSize / 8;
|
|
105
|
+
ctx.fillStyle = 'white';
|
|
106
|
+
if (topText) {
|
|
107
|
+
ctx.strokeText(topText.toUpperCase(), canvas.width / 2, fontSize + 10);
|
|
108
|
+
ctx.fillText(topText.toUpperCase(), canvas.width / 2, fontSize + 10);
|
|
109
|
+
}
|
|
110
|
+
if (bottomText) {
|
|
111
|
+
ctx.strokeText(bottomText.toUpperCase(), canvas.width / 2, canvas.height - 15);
|
|
112
|
+
ctx.fillText(bottomText.toUpperCase(), canvas.width / 2, canvas.height - 15);
|
|
113
|
+
}
|
|
114
|
+
resolve(canvas.toDataURL('image/jpeg', 0.9));
|
|
115
|
+
};
|
|
116
|
+
img.onerror = () => resolve(null);
|
|
117
|
+
});
|
|
118
|
+
}, [selectedMeme, topText, bottomText, imageProxyUrl]);
|
|
119
|
+
const download = (0, react_1.useCallback)(async () => {
|
|
120
|
+
if (!selectedMeme || isDownloading)
|
|
117
121
|
return;
|
|
118
122
|
setIsDownloading(true);
|
|
119
123
|
try {
|
|
120
|
-
const dataUrl =
|
|
124
|
+
const dataUrl = await drawMeme();
|
|
125
|
+
if (!dataUrl)
|
|
126
|
+
return;
|
|
121
127
|
const link = document.createElement('a');
|
|
122
128
|
link.href = dataUrl;
|
|
123
|
-
link.download = `meme-${
|
|
129
|
+
link.download = `meme-${selectedMeme.id}.jpg`;
|
|
124
130
|
document.body.appendChild(link);
|
|
125
131
|
link.click();
|
|
126
132
|
document.body.removeChild(link);
|
|
@@ -129,23 +135,22 @@ function useMemeGenerator({ memes: memesProp, config, fonts: fontsProp, defaultM
|
|
|
129
135
|
finally {
|
|
130
136
|
setIsDownloading(false);
|
|
131
137
|
}
|
|
132
|
-
};
|
|
138
|
+
}, [selectedMeme, isDownloading, drawMeme, topText, bottomText, onDownload]);
|
|
139
|
+
const fonts = fontsProp || DEFAULT_FONTS;
|
|
133
140
|
return {
|
|
134
|
-
|
|
135
|
-
fonts,
|
|
141
|
+
allMemes,
|
|
136
142
|
isLoading,
|
|
137
143
|
selectedMeme,
|
|
138
144
|
topText,
|
|
145
|
+
setTopText,
|
|
139
146
|
bottomText,
|
|
140
|
-
|
|
147
|
+
setBottomText,
|
|
141
148
|
isDownloading,
|
|
149
|
+
fonts,
|
|
142
150
|
canvasRef,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
setSelectedFont,
|
|
147
|
-
handleDownload,
|
|
148
|
-
renderCanvas,
|
|
151
|
+
selectMeme,
|
|
152
|
+
drawMeme,
|
|
153
|
+
download,
|
|
149
154
|
};
|
|
150
155
|
}
|
|
151
156
|
//# sourceMappingURL=useMemeGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMemeGenerator.js","sourceRoot":"","sources":["../../../../src/components/for-you/hooks/useMemeGenerator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"useMemeGenerator.js","sourceRoot":"","sources":["../../../../src/components/for-you/hooks/useMemeGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ForYouContentPreset } from '../api/forYouFetch';
|
|
1
2
|
export interface QuizHookQuestion {
|
|
2
3
|
id: string | number;
|
|
3
4
|
question: string;
|
|
@@ -23,7 +24,8 @@ export interface QuizHookItem {
|
|
|
23
24
|
contentsId: string;
|
|
24
25
|
}
|
|
25
26
|
export interface QuizHookConfig {
|
|
26
|
-
apiUrl
|
|
27
|
+
apiUrl?: string;
|
|
28
|
+
apiBaseUrl?: string;
|
|
27
29
|
questionsApiUrl?: string;
|
|
28
30
|
tags?: string[];
|
|
29
31
|
includeIds?: number[];
|
|
@@ -31,6 +33,7 @@ export interface QuizHookConfig {
|
|
|
31
33
|
initialCount?: number;
|
|
32
34
|
loadMoreCount?: number;
|
|
33
35
|
website_id?: string;
|
|
36
|
+
contents?: ForYouContentPreset[];
|
|
34
37
|
}
|
|
35
38
|
export interface UseQuizOptions {
|
|
36
39
|
config?: Partial<QuizHookConfig>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuiz.d.ts","sourceRoot":"","sources":["../../../../src/components/for-you/hooks/useQuiz.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useQuiz.d.ts","sourceRoot":"","sources":["../../../../src/components/for-you/hooks/useQuiz.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAI7D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IAKnB,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAChC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAA;IAC1C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAA;CACjE;AAGD,eAAO,MAAM,mBAAmB,EAAE,cAMjC,CAAA;AA8FD,wBAAgB,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAE,cAAmB;;;;;;;;;;;;;;;2BAiDlC,YAAY;;gCAwCzB,MAAM;;;EAwD1C"}
|