From df82e58958afff57e6e8e050af797e9a1725f276 Mon Sep 17 00:00:00 2001 From: "Ng Wing Tat, David" Date: Tue, 26 Sep 2023 14:14:40 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=F0=9F=9A=9A=20Move=20store=20page=20folder?= =?UTF-8?q?=20structure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/{store.vue => store/index.vue} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/pages/{store.vue => store/index.vue} (100%) diff --git a/src/pages/store.vue b/src/pages/store/index.vue similarity index 100% rename from src/pages/store.vue rename to src/pages/store/index.vue From f4ead42ef393cfef92d7aee51f060c70acfd3fc6 Mon Sep 17 00:00:00 2001 From: "Ng Wing Tat, David" Date: Tue, 26 Sep 2023 14:14:57 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E2=9C=A8=20Add=20more=20NFT=20Books=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/NFTBook/ItemCard.vue | 20 +++++---- src/constant/index.js | 39 +++++++++++++++--- src/locales/en.json | 4 +- src/locales/zh-Hant.json | 4 +- src/pages/index.vue | 4 +- src/pages/store/books.vue | 64 +++++++++++++++++++++++++++++ src/pages/store/index.vue | 19 +++++++-- 7 files changed, 132 insertions(+), 22 deletions(-) create mode 100644 src/pages/store/books.vue diff --git a/src/components/NFTBook/ItemCard.vue b/src/components/NFTBook/ItemCard.vue index 10afa5fb5..c865a6188 100644 --- a/src/components/NFTBook/ItemCard.vue +++ b/src/components/NFTBook/ItemCard.vue @@ -300,16 +300,18 @@ export default { methods: { async fetchInfo() { await this.lazyFetchNFTClassAggregatedData(); + if (this.preset === PRESET_TYPE.DETAILS) { + return; + } + try { - if ([PRESET_TYPE.CAMPAIGN, PRESET_TYPE.SHELF].includes(this.preset)) { - await this.fetchNFTBookPriceByClassId(this.classId).catch(error => { - if (error.response?.status !== 400) { - throw error; - } else { - return Promise.resolve(); - } - }); - } + await this.fetchNFTBookPriceByClassId(this.classId).catch(error => { + if (error.response?.status !== 400) { + throw error; + } else { + return Promise.resolve(); + } + }); } catch (error) { if (!error.response?.status === 404) { // eslint-disable-next-line no-console diff --git a/src/constant/index.js b/src/constant/index.js index e62a24fe8..ee4fc4a36 100644 --- a/src/constant/index.js +++ b/src/constant/index.js @@ -82,12 +82,13 @@ export const LIKECOIN_NFT_CLASS_FREE_MINT = IS_TESTNET ? 'likenft1t2a7n9px9y5mhayjpk4s7m40zwjr3wvyg4ucg32w77jxmsw7889qg6ky8d' : 'likenft1wtq5cqjw9vhpjqq6g8l55jhez6dpn78nxmna4dz235wrlwa203qs7j234q'; -export const LIKECOIN_NFT_BOOK_ITEMS = IS_TESTNET +export const LIKECOIN_NFT_BOOK_FEATURED_ITEMS = IS_TESTNET ? [ - 'likenft1fsf4x0tsm8gj8x0adkcce68es2xt5gwk9y7zjf06wwh92t27s99q3ktwpn', - 'likenft1xj9jkxcernd2fzd6597tee3v57hzy8r4tzpmr7hu5mqvzah7ztaqua9yvh', - 'likenft1yycuh6458s9045xvy6205xp2uhpl7r4lukfdclhg0phwjlfytq3skmuq8j', - 'likenft1j3azrgn736esh3sm0y03l93pecmy8mkuf43n0w3j22zeqn3r6uwsz40spa', + 'likenft17425skd9dfq8djm9j6c73vv2393ffaq9gpes6ewq77x2mgp4w2xqp7vkla', + 'likenft1dgvyx97wv5f3kz3ag9uk0u2t4rwd6azth9yxre7ux2pwz6f75ytstfktxm', + 'likenft1h5td83etzwrrqvjnedwh800nkfzcnc3773l3pzupegcvyug749dslxgn5m', + 'likenft15raex2xg55l0vutfww8faxnsjxxeqead87mtaj7tczzvmpgxmn3s95vnp2', + 'likenft1cstgwjga3295rnp7rukqwschu7c9zka99x0lm2xwphx3aksqmp7s38d3v4', ] : [ // 天工開物・栩栩如真 @@ -104,6 +105,34 @@ export const LIKECOIN_NFT_BOOK_ITEMS = IS_TESTNET 'likenft1ku4ra0e7dgknhd0wckrkxspuultynl4mgkxa3j08xeshfr2l0ujqmmvy83', ]; +export const LIKECOIN_NFT_BOOK_ITEMS = IS_TESTNET + ? [ + 'likenft1kramesxthl5f09pf5elrejvml9zufmtn9cuf74r5zmwhlf866udq5d5x25', + 'likenft10rur203yk5mc7ufx0r56ssj5q7656upwfp56sccxm7hut0nft2gq9k70wv', + 'likenft1pvzffhcdk5yn6sh4hju7h0k56mrd30j8nd39pemw0u4qnxzg3ynsfkhg0d', + 'likenft1yuqkfvv9zsju94paak03sqn28rn5vrnfad3kuercenpuh3eax06qcug578', + ] + : [ + // Animal Farm + 'likenft14tuskytm0ewn4aadxrmlfgszexppk0f5xef2xu7zhjltdz3eud9s743mrj', + // Brave New World + 'likenft16744dyfn96vswqsy6286hzatnymzg0vwnr6aqrpwm9d7hpfnh7rqmktxua', + // The Count of Monte Christo + 'likenft1f7nfpgsaen3uwkhp6a3trl6u59qaapd597lnwplh75m3fer8ls2q2rmv5g', + // 吶喊 + 'likenft1v0y53j55l96ye4dzm00gqfhkazzy6mrytlav4cy35stthvflk9ls7fpqhs', + // Oliver Twist + 'likenft1yulzjeeuz4fdj754tugqw6342dyfd5wtkfyraly45ea79h9qnjxs8cqxfe', + // 呼蘭河傳 + 'likenft1hfx5j4utxp9mpdzf5g5r7w9gve4lw9q2a402k00t45ruf8pca2eqndap32', + // 死水微瀾 + 'likenft1tjyaqr0e3pfv9squz0grs95sdnfjgr6kd59e2aen3krmdge28cesnjt8de', + // 沉淪 + 'likenft1cjf56z3dju27dv77hqxdpm3e034gluq3etmagxygssexr86sem6sk3szyq', + // The Call of the Wild + 'likenft1yxedh53ay49u8xu6aqg6aa0gr6jj9svy40q3wjv266v6pvrzyj4s6hszzj', + ]; + export const LIKECOIN_NFT_CAMPAIGN_ITEMS = IS_TESTNET ? [ 'likenft1qehd8pcp33ds3myxpmpanag2aqz4ygzmrukgtn8a69qyhswa5uqs952yjn', diff --git a/src/locales/en.json b/src/locales/en.json index 90c695b6d..cdac7c5ce 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -657,8 +657,8 @@ "language": "Language", "title": "Settings" }, - "shopping_cart_checkout_button_by_LIKE": "Checkout by LIKE", "shopping_cart_checkout_button_by_card": "Checkout by card", + "shopping_cart_checkout_button_by_LIKE": "Checkout by LIKE", "shopping_cart_empty_notice": "Backpack is empty", "shopping_cart_empty_notice_button": "Browse NFT", "shopping_cart_error_insufficient_balance": "Insufficient balance, you only have {balance}", @@ -689,6 +689,8 @@ "snackbar_error_seq_mismatch": "Transaction sequence error. Please wait for a moment until the account status matches, and then try purchasing again.", "snackbar_success_collect": "Complete the collect of \"{NFT}\".", "snackbar_success_transfer": "Complete the transfer of NFT.", + "store_books_page_title": "More Books", + "store_nft_book_more_button": "More Books", "subVPs": [ "The easiest way to send and receive LikeCoin.", "View the weekly, daily statistics of your LikeCoin bonus, down to each workpiece.", diff --git a/src/locales/zh-Hant.json b/src/locales/zh-Hant.json index 65dc55d27..0f16037c9 100644 --- a/src/locales/zh-Hant.json +++ b/src/locales/zh-Hant.json @@ -648,8 +648,8 @@ "language": "介面語言", "title": "設定" }, - "shopping_cart_checkout_button_by_LIKE": "以 LIKE 結帳", "shopping_cart_checkout_button_by_card": "以信用卡結帳", + "shopping_cart_checkout_button_by_LIKE": "以 LIKE 結帳", "shopping_cart_empty_notice": "背包是空的", "shopping_cart_empty_notice_button": "瀏覽 NFT", "shopping_cart_error_insufficient_balance": "餘額不足,你只有 {balance}", @@ -680,6 +680,8 @@ "snackbar_error_seq_mismatch": "交易序列錯誤,請稍等一段時間等帳戶狀態同步後,再重試購買", "snackbar_success_collect": "完成收藏 \"{NFT}\".", "snackbar_success_transfer": "已完成發送作品", + "store_books_page_title": "更多書目", + "store_nft_book_more_button": "更多書目", "subVPs": [ "用 Liker Land 收發 LikeCoin 最便捷", "每週、每天、每篇文章所獲賺賞,一目了然", diff --git a/src/pages/index.vue b/src/pages/index.vue index b2f30fa2e..b924ea32a 100644 --- a/src/pages/index.vue +++ b/src/pages/index.vue @@ -1252,7 +1252,7 @@ import animatedBookCover from '~/assets/images/index/nft-book-cover.mp4'; import { LIKECOIN_NFT_CLASS_FREE_MINT, - LIKECOIN_NFT_BOOK_ITEMS, + LIKECOIN_NFT_BOOK_FEATURED_ITEMS, } from '~/constant'; import { logTrackerEvent } from '~/util/EventLogger'; @@ -1346,7 +1346,7 @@ export default { return LIKECOIN_NFT_CLASS_FREE_MINT; }, featuredNFTBookClassId() { - return LIKECOIN_NFT_BOOK_ITEMS[0]; + return LIKECOIN_NFT_BOOK_FEATURED_ITEMS[0]; }, animatedBookCoverSrc() { return animatedBookCover; diff --git a/src/pages/store/books.vue b/src/pages/store/books.vue new file mode 100644 index 000000000..950b38e56 --- /dev/null +++ b/src/pages/store/books.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/pages/store/index.vue b/src/pages/store/index.vue index 7874d6157..67274c8fd 100644 --- a/src/pages/store/index.vue +++ b/src/pages/store/index.vue @@ -11,7 +11,7 @@ >

{{ $t('home_section_book_title') }}

-
+
+ +
@@ -159,7 +167,7 @@ import { mapActions, mapGetters } from 'vuex'; import { LIKECOIN_NFT_CAMPAIGN_ITEMS, - LIKECOIN_NFT_BOOK_ITEMS, + LIKECOIN_NFT_BOOK_FEATURED_ITEMS, } from '~/constant'; import { checkIsLikeCoinAppInAppBrowser } from '~/util/client'; @@ -177,7 +185,7 @@ export default { const title = this.$t('campaign_nft_page_title'); const description = this.$t('campaign_nft_page_description'); const link = [{ rel: 'canonical', href: `${this.$route.path}` }]; - LIKECOIN_NFT_BOOK_ITEMS.forEach(item => { + LIKECOIN_NFT_BOOK_FEATURED_ITEMS.forEach(item => { link.push({ rel: 'prefetch', href: `/api/nft/metadata?class_id=${item}`, @@ -246,7 +254,7 @@ export default { }); }, nftBooks() { - return LIKECOIN_NFT_BOOK_ITEMS.map(classId => ({ classId })); + return LIKECOIN_NFT_BOOK_FEATURED_ITEMS.map(classId => ({ classId })); }, nftBooksOnShelf() { return this.nftBooks.slice(1); @@ -323,6 +331,9 @@ export default { query: { ...query, tab }, }); }, + handleClickNFTBookMoreButton() { + logTrackerEvent(this, 'Store', 'StoreViewMoreNFTBookClick', '', 1); + }, handleClickAboutWritingNFTButton() { logTrackerEvent( this, From 93d65bb141e24e618269b7b25a525e102a6b1cbc Mon Sep 17 00:00:00 2001 From: "Ng Wing Tat, David" Date: Tue, 26 Sep 2023 23:15:46 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E2=9C=A8=20Show=20author=20if=20exists=20f?= =?UTF-8?q?or=20NFT=20Book?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/NFTBook/ItemCard.vue | 78 ++++++++++++++----------- src/components/NFTPage/PreviewCard.vue | 9 +++ src/locales/en.json | 2 + src/locales/zh-Hant.json | 2 + src/mixins/nft.js | 3 + src/pages/nft/class/_classId/_nftId.vue | 1 + src/pages/nft/class/_classId/index.vue | 1 + 7 files changed, 62 insertions(+), 34 deletions(-) diff --git a/src/components/NFTBook/ItemCard.vue b/src/components/NFTBook/ItemCard.vue index c865a6188..32a5348dd 100644 --- a/src/components/NFTBook/ItemCard.vue +++ b/src/components/NFTBook/ItemCard.vue @@ -44,7 +44,7 @@