メルカリのサービスを表示したスマートフォン画面
mercari

アップデートのお知らせ

安心で快適なお取引のために

より安心で快適にメルカリをご利用いただくための、機能アップデートや取り組みの情報をお届けします。

カテゴリーを読み込んでいます…

{{category.displayLabel}} {{category.publishedAt}} {{category.label}}
{{article.displayLabel}}

{{article.publishedAt}}

{{article.label}}

{{article.description}}

このアップデートを良いと思いましたか?

回答は今後の改善の参考にします。

はい いいえ

{{article.feedbackMessage}}

さらに詳しく内容を知る >

安心安全のための取り組み

const articleCardClass = (index, total) => [ "mx-auto flex h-full w-full max-w-[350px] scroll-mt-6 flex-col border-dashed border-[#767676] pb-[42px] pt-7 lg:pt-[72px]", helpers.isLastGridRow(index, total, 1) ? "border-b-0" : "border-b", helpers.isLastGridRow(index, total, 2) ? "lg:border-b-0" : "lg:border-b", helpers.isLastGridRow(index, total, 3) ? "min-[1200px]:border-b-0" : "min-[1200px]:border-b" ].join(" "); const createFeedbackState = (item) => ({ ...item, feedbackPending: true, feedbackMessage: "", feedbackYes: { articleId: item.id, answer: "helpful", element: "feedback_survey_helpful" }, feedbackNo: { articleId: item.id, answer: "not_helpful", element: "feedback_survey_not_helpful" } }); const previewItems = Array.from({ length: 14 }, (_, index) => { const number = 14 - index; const item = { id: `preview-${number}`, articleId: `article-${number}`, displayNumber: String(number), displayLabel: `no.${number}`, label: `\u30D7\u30EC\u30D3\u30E5\u30FC\u7528\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 ${number}`, description: "Preview\u74B0\u5883\u3067\u8868\u793A\u3092\u78BA\u8A8D\u3059\u308B\u305F\u3081\u306E\u30C0\u30DF\u30FC\u8A18\u4E8B\u3067\u3059\u3002", publishedAt: "2026.9", imageUrl: "https://campaign.jp.mercari.com/pages/images/figma-0afECXNyrpktCaCl4e1zQm-227-14727-png@2.png", imageAlt: `\u30D7\u30EC\u30D3\u30E5\u30FC\u7528\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 ${number}`, href: `#article-${number}`, detailHref: `https://safety.jp.mercari.com/updates/preview-${number}/index.html`, cardClass: "" }; return createFeedbackState({ ...item, mountArticle: (event) => { event.detail.element.id = item.articleId; } }); }); rx.categoryIndex = { allItems: previewItems, items: previewItems.slice(0, 10).map((item, index) => ({ ...item, cardClass: articleCardClass(index, 10) })), pages: [ { page: 1, label: "1", className: "inline-flex h-8 w-8 items-center justify-center rounded-[20px] border border-solid border-[#43b9f6] bg-white text-[16px] font-normal text-[#333]" }, { page: 2, label: "2", className: "inline-flex h-8 w-8 items-center justify-center rounded-[20px] border border-solid border-[#dcdcdc] bg-white text-[16px] font-normal text-[#333]" } ], currentPage: 1, listClass: "mx-5 mt-4 grid md:mx-auto md:mt-9 md:w-[calc(100%-80px)] md:max-w-[526px] md:grid-cols-1 md:gap-y-4 lg:max-w-[1126px] lg:grid-cols-2 lg:gap-x-[74px]", showPagination: true, isLoading: false, errorMessage: "" }; const updateCategoryView = (page) => { const pageItems = helpers.categoryPageItems(rx.categoryIndex.allItems, page); const items = pageItems.map((item, index) => ({ ...item, cardClass: articleCardClass(index, pageItems.length) })); rx.categoryIndex = { ...rx.categoryIndex, currentPage: page, items, pages: helpers.categoryPageNumbers(rx.categoryIndex.allItems.length).map((pageNumber) => ({ page: pageNumber, label: String(pageNumber), className: pageNumber === page ? "inline-flex h-8 w-8 items-center justify-center rounded-[20px] border border-solid border-[#43b9f6] bg-white text-[16px] font-normal text-[#333]" : "inline-flex h-8 w-8 items-center justify-center rounded-[20px] border border-solid border-[#dcdcdc] bg-white text-[16px] font-normal text-[#333]" })), listClass: "mx-5 mt-4 grid md:mx-auto md:mt-9 md:w-[calc(100%-80px)] md:max-w-[526px] md:grid-cols-1 md:gap-y-4 lg:max-w-[1126px] lg:grid-cols-2 lg:gap-x-[74px]", showPagination: helpers.shouldShowCategoryPagination(rx.categoryIndex.allItems.length) }; }; rx.selectCategoryPage = (page) => updateCategoryView(page); rx.smoothScrollToArticle = (event) => { const href = event.currentTarget?.getAttribute?.("href") ?? ""; if (!href?.startsWith("#")) return; const target = event.currentTarget?.ownerDocument?.getElementById(href.slice(1)); if (!target) return; event.preventDefault(); target.scrollIntoView?.({ behavior: "smooth", block: "start" }); }; rx.selectFeedback = (selection, event) => { const currentItem = rx.categoryIndex.allItems.find((item) => item.id === selection.articleId); if (!currentItem || !currentItem.feedbackPending) return; platform.logLaplace({ section: "body", element: selection.element, action: "TAP", elementId: event.currentTarget?.dataset?.elementId ?? selection.element }); const answerItem = (item) => item.id === selection.articleId ? { ...item, feedbackPending: false, feedbackMessage: "\u3054\u56DE\u7B54\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3057\u305F\u3002" } : item; rx.categoryIndex = { ...rx.categoryIndex, allItems: rx.categoryIndex.allItems.map(answerItem), items: rx.categoryIndex.items.map(answerItem) }; }; const showCategoryItems = (allItems) => { const sortedItems = helpers.sortByDisplayNumberDesc(allItems); rx.categoryIndex = { ...rx.categoryIndex, allItems: sortedItems.map((item) => createFeedbackState({ ...item, cardClass: "", mountArticle: (event) => { event.detail.element.id = item.articleId; } })), isLoading: false }; updateCategoryView(1); }; const showCategoryError = () => { rx.categoryIndex = { ...rx.categoryIndex, isLoading: false, errorMessage: "\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u60C5\u5831\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u6642\u9593\u3092\u304A\u3044\u3066\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002" }; }; const isPreview = (env.isDevelopment !== false || env.isIframe === true) && !env.isTesting; if (isPreview) { try { showCategoryItems(helpers.previewCategoryIndexItems(14)); } catch (_error) { showCategoryError(); } } else { rx.categoryIndex = { ...rx.categoryIndex, allItems: [], items: [], pages: [], showPagination: false, isLoading: true, errorMessage: "" }; effect(async ({ signal }) => { try { const payload = await platform.api.get( "https://campaign.jp.mercari.com/pages/media/_category-index/tns-portal/page-1.json", { withAuth: false, signal } ); if (signal.aborted) return; showCategoryItems(helpers.normalizeCategoryIndex(payload)); } catch (_error) { if (!signal.aborted) showCategoryError(); } }); } //# sourceURL=egp-script-0.ts