diff --git a/lang/default.json b/lang/default.json
index 7870717215..b540a94307 100644
--- a/lang/default.json
+++ b/lang/default.json
@@ -376,9 +376,6 @@
"3EeDnu": {
"defaultMessage": "Paste JSFiddle or CodePen link, and press enter"
},
- "3HKaQ4": {
- "defaultMessage": "The next slice mounts the zkID in-browser worker here and submits the proof to Matters."
- },
"3KNMbJ": {
"defaultMessage": "Articles"
},
@@ -493,6 +490,9 @@
"5XFd/5": {
"defaultMessage": "Manage Circle"
},
+ "5YuSaZ": {
+ "defaultMessage": "After TW FidO signs, continue here on desktop, or copy the Mac proof link to a desktop browser."
+ },
"5fjmnA": {
"defaultMessage": "碳基生物"
},
@@ -612,6 +612,9 @@
"defaultMessage": "Edit",
"description": "src/components/CircleComment/DropdownActions/EditButton.tsx"
},
+ "6wdAti": {
+ "defaultMessage": "No moments yet"
+ },
"73iajM": {
"defaultMessage": "Oops. Something went wrong. Please try again later.",
"description": "BAD_USER_INPUT"
@@ -623,6 +626,9 @@
"defaultMessage": "Payout Canceled",
"description": "src/components/Transaction/index.tsx"
},
+ "7DJ8wF": {
+ "defaultMessage": "Join the Moments channel"
+ },
"7HPPqs": {
"defaultMessage": ". {SuggestButton}?"
},
@@ -1074,6 +1080,9 @@
"DtO278": {
"defaultMessage": "We’ve detected that several of your recent works have been recommended to related channels. They may not appear at the same time"
},
+ "Dx5Sas": {
+ "defaultMessage": "Copy Mac proof link"
+ },
"DyuHBH": {
"defaultMessage": "Unpin from profile",
"description": "src/components/CollectionDigest/DropdownActions/PinButton.tsx"
@@ -1178,6 +1187,9 @@
"defaultMessage": "Switch to Optimism network now?",
"description": "src/components/Forms/PaymentForm/SwitchNetwork/index.tsx"
},
+ "FXgOAP": {
+ "defaultMessage": "Browser handoff is ready. Browser proving is pending until the prover runs in a cross-origin isolated page."
+ },
"Fe682o": {
"defaultMessage": "Next Month (Estimation)",
"description": "src/views/Circle/Analytics/IncomeAnalytics/index.tsx"
@@ -1348,6 +1360,9 @@
"HzB4Lk": {
"defaultMessage": "Tell readers why you edited this time..."
},
+ "I1eVEY": {
+ "defaultMessage": "Application submitted, pending review"
+ },
"I3v/Va": {
"defaultMessage": "PWA proof handoff"
},
@@ -1545,6 +1560,9 @@
"LWE7oq": {
"defaultMessage": "Saving draft, are you sure you want to leave?"
},
+ "LXZyce": {
+ "defaultMessage": "You have already applied, please wait for the review."
+ },
"Lb0JsC": {
"defaultMessage": "You have blocked that user"
},
@@ -1801,6 +1819,9 @@
"Q8Qw5B": {
"defaultMessage": "Description"
},
+ "QHRze5": {
+ "defaultMessage": "Moments"
+ },
"QKJWqd": {
"defaultMessage": "Bookmark",
"description": "src/components/Buttons/TagBookmark/Bookmark.tsx"
@@ -2099,9 +2120,6 @@
"defaultMessage": "Publishing, please wait...",
"description": "src/components/Editor/PreviewDialog/index.tsx"
},
- "V3oaoZ": {
- "defaultMessage": "After TW FidO signs, continue in this browser. No native proof helper is required for this PWA path."
- },
"V5OMr4": {
"defaultMessage": "What is a digital wallet?",
"description": "src/components/Forms/SelectAuthMethodForm/WalletFeed.tsx"
@@ -2113,6 +2131,9 @@
"VBve8d": {
"defaultMessage": "Settled in Matters"
},
+ "VDclc3": {
+ "defaultMessage": "You have joined the Moments channel. The moments you post will now appear in this channel."
+ },
"VFQGq7": {
"defaultMessage": "Check result"
},
@@ -2340,9 +2361,6 @@
"Z39z+x": {
"defaultMessage": "{displayName} won't be able to comment your article. Besides, he or she can't @ you and subscribe your circle. You can manage blocked list in settings."
},
- "Z4R3Lq": {
- "defaultMessage": "This browser page is missing a required PWA proving capability."
- },
"Z7JXlF": {
"defaultMessage": "Archived for violation.",
"description": "src/views/ArticleDetail/StickyTopBanner/index.tsx"
@@ -2446,6 +2464,9 @@
"defaultMessage": "go to the homepage",
"description": "src/views/Callback/UI.tsx"
},
+ "atmn17": {
+ "defaultMessage": "Open isolated prover"
+ },
"awW+lk": {
"defaultMessage": "Processing",
"description": "src/components/Transaction/State/index.tsx"
@@ -2583,6 +2604,10 @@
"d5bM8A": {
"defaultMessage": "Select Date..."
},
+ "d95AX1": {
+ "defaultMessage": "Let me think about it",
+ "description": "src/views/HottestMoments/Apply/Dialog/index.tsx"
+ },
"dAPUJp": {
"defaultMessage": "The dazzling light of a meteor shower is enough to illuminate the night sky. The Meteor Canoe badge signifies your participation in the Nomad Matters.",
"description": "src/views/User/UserProfile/BadgeNomadLabel/index.tsx"
@@ -2619,6 +2644,9 @@
"defaultMessage": "Comments and replies",
"description": "src/views/Me/Settings/Notifications/GeneralSettings/index.tsx"
},
+ "dWt8c/": {
+ "defaultMessage": "Open the isolated browser container. It does not load the normal Matters bundle, so cross-origin isolation can be enabled for the zkID worker."
+ },
"dZlT9q": {
"defaultMessage": "Your work has been recommended to the channels: {channelNames}. Are you satisfied with the result?"
},
@@ -2859,6 +2887,10 @@
"defaultMessage": "Insufficient:",
"description": "src/components/Balance/index.tsx"
},
+ "hdbKK1": {
+ "defaultMessage": "Moments",
+ "description": "src/components/Layout/SideChannelNav/index.tsx"
+ },
"hgtWIO": {
"defaultMessage": "Articles have been collected",
"description": "src/views/Me/Settings/Notifications/GeneralSettings/index.tsx"
@@ -3263,6 +3295,9 @@
"defaultMessage": "Following",
"description": "src/components/UserProfile/index.tsx"
},
+ "ol0msv": {
+ "defaultMessage": "Copy TW FidO link"
+ },
"on+DYO": {
"defaultMessage": "Confirm application"
},
@@ -3538,6 +3573,9 @@
"tWCQCd": {
"defaultMessage": "The contract has sent {amount} USDT to the connected wallet"
},
+ "tYDhrI": {
+ "defaultMessage": "Once you request to join and are approved, the moments you post will appear in this channel."
+ },
"tZKvnZ": {
"defaultMessage": "Unlike moment"
},
@@ -3902,6 +3940,9 @@
"z3uIHQ": {
"defaultMessage": "Undo upvote"
},
+ "z5UXPc": {
+ "defaultMessage": "Apply to join"
+ },
"z91BKe": {
"defaultMessage": "Archived Work",
"description": "src/components/Notice/NoticeArticleTitle.tsx"
@@ -3913,9 +3954,6 @@
"defaultMessage": "The login link has been sent to {email}",
"description": "src/components/Forms/Verification/LinkSent.tsx"
},
- "zCCJPu": {
- "defaultMessage": "Run browser proof"
- },
"zE51j6": {
"defaultMessage": "Failed to publish, please try again."
},
diff --git a/lang/en.json b/lang/en.json
index 19c8c67b2f..7b8296a987 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -376,9 +376,6 @@
"3EeDnu": {
"defaultMessage": "Paste JSFiddle or CodePen link, and press enter"
},
- "3HKaQ4": {
- "defaultMessage": "The next slice mounts the zkID in-browser worker here and submits the proof to Matters."
- },
"3KNMbJ": {
"defaultMessage": "Articles"
},
@@ -493,6 +490,9 @@
"5XFd/5": {
"defaultMessage": "Manage Circle"
},
+ "5YuSaZ": {
+ "defaultMessage": "After TW FidO signs, continue here on desktop, or copy the Mac proof link to a desktop browser."
+ },
"5fjmnA": {
"defaultMessage": "碳基生物"
},
@@ -612,6 +612,9 @@
"defaultMessage": "Edit",
"description": "src/components/CircleComment/DropdownActions/EditButton.tsx"
},
+ "6wdAti": {
+ "defaultMessage": "No moments yet"
+ },
"73iajM": {
"defaultMessage": "Oops. Something went wrong. Please try again later.",
"description": "BAD_USER_INPUT"
@@ -623,6 +626,9 @@
"defaultMessage": "Payout Canceled",
"description": "src/components/Transaction/index.tsx"
},
+ "7DJ8wF": {
+ "defaultMessage": "Join the Moments channel"
+ },
"7HPPqs": {
"defaultMessage": ". {SuggestButton}?"
},
@@ -1074,6 +1080,9 @@
"DtO278": {
"defaultMessage": "We’ve detected that several of your recent works have been recommended to related channels. They may not appear at the same time"
},
+ "Dx5Sas": {
+ "defaultMessage": "Copy Mac proof link"
+ },
"DyuHBH": {
"defaultMessage": "Unpin from profile",
"description": "src/components/CollectionDigest/DropdownActions/PinButton.tsx"
@@ -1178,6 +1187,9 @@
"defaultMessage": "Switch to Optimism network now?",
"description": "src/components/Forms/PaymentForm/SwitchNetwork/index.tsx"
},
+ "FXgOAP": {
+ "defaultMessage": "Browser handoff is ready. Browser proving is pending until the prover runs in a cross-origin isolated page."
+ },
"Fe682o": {
"defaultMessage": "Next Month (Estimation)",
"description": "src/views/Circle/Analytics/IncomeAnalytics/index.tsx"
@@ -1348,6 +1360,9 @@
"HzB4Lk": {
"defaultMessage": "Tell readers why you edited this time..."
},
+ "I1eVEY": {
+ "defaultMessage": "Application submitted, pending review"
+ },
"I3v/Va": {
"defaultMessage": "PWA proof handoff"
},
@@ -1545,6 +1560,9 @@
"LWE7oq": {
"defaultMessage": "Saving draft, are you sure you want to leave?"
},
+ "LXZyce": {
+ "defaultMessage": "You have already applied, please wait for the review."
+ },
"Lb0JsC": {
"defaultMessage": "You have blocked that user"
},
@@ -1801,6 +1819,9 @@
"Q8Qw5B": {
"defaultMessage": "Description"
},
+ "QHRze5": {
+ "defaultMessage": "Moments"
+ },
"QKJWqd": {
"defaultMessage": "Bookmark",
"description": "src/components/Buttons/TagBookmark/Bookmark.tsx"
@@ -2099,9 +2120,6 @@
"defaultMessage": "Publishing, please wait...",
"description": "src/components/Editor/PreviewDialog/index.tsx"
},
- "V3oaoZ": {
- "defaultMessage": "After TW FidO signs, continue in this browser. No native proof helper is required for this PWA path."
- },
"V5OMr4": {
"defaultMessage": "What is a digital wallet?",
"description": "src/components/Forms/SelectAuthMethodForm/WalletFeed.tsx"
@@ -2113,6 +2131,9 @@
"VBve8d": {
"defaultMessage": "Settled in Matters"
},
+ "VDclc3": {
+ "defaultMessage": "You have joined the Moments channel. The moments you post will now appear in this channel."
+ },
"VFQGq7": {
"defaultMessage": "Check result"
},
@@ -2340,9 +2361,6 @@
"Z39z+x": {
"defaultMessage": "{displayName} won't be able to comment your article. Besides, he or she can't @ you and subscribe your circle. You can manage blocked list in settings."
},
- "Z4R3Lq": {
- "defaultMessage": "This browser page is missing a required PWA proving capability."
- },
"Z7JXlF": {
"defaultMessage": "Archived for violation.",
"description": "src/views/ArticleDetail/StickyTopBanner/index.tsx"
@@ -2446,6 +2464,9 @@
"defaultMessage": "go to the homepage",
"description": "src/views/Callback/UI.tsx"
},
+ "atmn17": {
+ "defaultMessage": "Open isolated prover"
+ },
"awW+lk": {
"defaultMessage": "Processing",
"description": "src/components/Transaction/State/index.tsx"
@@ -2583,6 +2604,10 @@
"d5bM8A": {
"defaultMessage": "Select Date..."
},
+ "d95AX1": {
+ "defaultMessage": "Let me think about it",
+ "description": "src/views/HottestMoments/Apply/Dialog/index.tsx"
+ },
"dAPUJp": {
"defaultMessage": "The dazzling light of a meteor shower is enough to illuminate the night sky. The Meteor Canoe badge signifies your participation in the Nomad Matters.",
"description": "src/views/User/UserProfile/BadgeNomadLabel/index.tsx"
@@ -2619,6 +2644,9 @@
"defaultMessage": "Comments and replies",
"description": "src/views/Me/Settings/Notifications/GeneralSettings/index.tsx"
},
+ "dWt8c/": {
+ "defaultMessage": "Open the isolated browser container. It does not load the normal Matters bundle, so cross-origin isolation can be enabled for the zkID worker."
+ },
"dZlT9q": {
"defaultMessage": "Your work has been recommended to the channels: {channelNames}. Are you satisfied with the result?"
},
@@ -2859,6 +2887,10 @@
"defaultMessage": "Insufficient: ",
"description": "src/components/Balance/index.tsx"
},
+ "hdbKK1": {
+ "defaultMessage": "Moments",
+ "description": "src/components/Layout/SideChannelNav/index.tsx"
+ },
"hgtWIO": {
"defaultMessage": "Articles have been collected",
"description": "src/views/Me/Settings/Notifications/GeneralSettings/index.tsx"
@@ -3263,6 +3295,9 @@
"defaultMessage": "Following",
"description": "src/components/UserProfile/index.tsx"
},
+ "ol0msv": {
+ "defaultMessage": "Copy TW FidO link"
+ },
"on+DYO": {
"defaultMessage": "Confirm application"
},
@@ -3538,6 +3573,9 @@
"tWCQCd": {
"defaultMessage": "The contract has sent {amount} USDT to the connected wallet"
},
+ "tYDhrI": {
+ "defaultMessage": "Once you request to join and are approved, the moments you post will appear in this channel."
+ },
"tZKvnZ": {
"defaultMessage": "Unlike moment"
},
@@ -3902,6 +3940,9 @@
"z3uIHQ": {
"defaultMessage": "Undo upvote"
},
+ "z5UXPc": {
+ "defaultMessage": "Apply to join"
+ },
"z91BKe": {
"defaultMessage": "Archived Work",
"description": "src/components/Notice/NoticeArticleTitle.tsx"
@@ -3913,9 +3954,6 @@
"defaultMessage": "The login link has been sent to {email}",
"description": "src/components/Forms/Verification/LinkSent.tsx"
},
- "zCCJPu": {
- "defaultMessage": "Run browser proof"
- },
"zE51j6": {
"defaultMessage": "Failed to publish, please try again."
},
diff --git a/lang/zh-Hans.json b/lang/zh-Hans.json
index d3965a78a7..5548f213c8 100644
--- a/lang/zh-Hans.json
+++ b/lang/zh-Hans.json
@@ -376,9 +376,6 @@
"3EeDnu": {
"defaultMessage": "贴上 JSFiddle 或 CodePen 链接后,Enter 进行新增"
},
- "3HKaQ4": {
- "defaultMessage": "The next slice mounts the zkID in-browser worker here and submits the proof to Matters."
- },
"3KNMbJ": {
"defaultMessage": "作品"
},
@@ -493,6 +490,9 @@
"5XFd/5": {
"defaultMessage": "管理围炉"
},
+ "5YuSaZ": {
+ "defaultMessage": "After TW FidO signs, continue here on desktop, or copy the Mac proof link to a desktop browser."
+ },
"5fjmnA": {
"defaultMessage": "碳基生物"
},
@@ -612,6 +612,9 @@
"defaultMessage": "编辑评论",
"description": "src/components/CircleComment/DropdownActions/EditButton.tsx"
},
+ "6wdAti": {
+ "defaultMessage": "还没有动态"
+ },
"73iajM": {
"defaultMessage": "出错了,请检查你输入的内容",
"description": "BAD_USER_INPUT"
@@ -623,6 +626,9 @@
"defaultMessage": "提现撤销",
"description": "src/components/Transaction/index.tsx"
},
+ "7DJ8wF": {
+ "defaultMessage": "加入动态频道"
+ },
"7HPPqs": {
"defaultMessage": "。{SuggestButton}?"
},
@@ -1074,6 +1080,9 @@
"DtO278": {
"defaultMessage": "检测到近期你的多篇文章被推荐到相关频道,他们有可能不会同时出现"
},
+ "Dx5Sas": {
+ "defaultMessage": "Copy Mac proof link"
+ },
"DyuHBH": {
"defaultMessage": "取消代表作",
"description": "src/components/CollectionDigest/DropdownActions/PinButton.tsx"
@@ -1178,6 +1187,9 @@
"defaultMessage": "目前非 Optimism 网络,立即切换?",
"description": "src/components/Forms/PaymentForm/SwitchNetwork/index.tsx"
},
+ "FXgOAP": {
+ "defaultMessage": "Browser handoff is ready. Browser proving is pending until the prover runs in a cross-origin isolated page."
+ },
"Fe682o": {
"defaultMessage": "下月预期营收",
"description": "src/views/Circle/Analytics/IncomeAnalytics/index.tsx"
@@ -1348,6 +1360,9 @@
"HzB4Lk": {
"defaultMessage": "告知读者你此次编辑的更动有哪些⋯"
},
+ "I1eVEY": {
+ "defaultMessage": "已送出申请,待审核"
+ },
"I3v/Va": {
"defaultMessage": "PWA proof handoff"
},
@@ -1545,6 +1560,9 @@
"LWE7oq": {
"defaultMessage": "草稿保存中,确定要离开吗?"
},
+ "LXZyce": {
+ "defaultMessage": "你已经申请过了,请耐心等候审核"
+ },
"Lb0JsC": {
"defaultMessage": "你屏蔽了该用户"
},
@@ -1801,6 +1819,9 @@
"Q8Qw5B": {
"defaultMessage": "描述"
},
+ "QHRze5": {
+ "defaultMessage": "动态"
+ },
"QKJWqd": {
"defaultMessage": "收藏",
"description": "src/components/Buttons/TagBookmark/Bookmark.tsx"
@@ -2099,9 +2120,6 @@
"defaultMessage": "发布中,请稍候⋯",
"description": "src/components/Editor/PreviewDialog/index.tsx"
},
- "V3oaoZ": {
- "defaultMessage": "After TW FidO signs, continue in this browser. No native proof helper is required for this PWA path."
- },
"V5OMr4": {
"defaultMessage": "什么是数字钱包?",
"description": "src/components/Forms/SelectAuthMethodForm/WalletFeed.tsx"
@@ -2113,6 +2131,9 @@
"VBve8d": {
"defaultMessage": "搬家到 Matters"
},
+ "VDclc3": {
+ "defaultMessage": "你已加入动态频道,即日起发出的动态将显示于此频道"
+ },
"VFQGq7": {
"defaultMessage": "Check result"
},
@@ -2340,9 +2361,6 @@
"Z39z+x": {
"defaultMessage": "封锁之后,{displayName} 将无法评论你的作品,不能 @ 你,并且不能加入你的围炉。你可以在设置里管理你的封锁用户列表"
},
- "Z4R3Lq": {
- "defaultMessage": "This browser page is missing a required PWA proving capability."
- },
"Z7JXlF": {
"defaultMessage": "因违反用户协定而被封存,",
"description": "src/views/ArticleDetail/StickyTopBanner/index.tsx"
@@ -2446,6 +2464,9 @@
"defaultMessage": "前往首页",
"description": "src/views/Callback/UI.tsx"
},
+ "atmn17": {
+ "defaultMessage": "Open isolated prover"
+ },
"awW+lk": {
"defaultMessage": "进行中…",
"description": "src/components/Transaction/State/index.tsx"
@@ -2583,6 +2604,10 @@
"d5bM8A": {
"defaultMessage": "投稿日程⋯"
},
+ "d95AX1": {
+ "defaultMessage": "我再想想",
+ "description": "src/views/HottestMoments/Apply/Dialog/index.tsx"
+ },
"dAPUJp": {
"defaultMessage": "流星雨的绚烂光芒足以点亮夜空。流星号徽章纪念你曾参与「游牧者计划」。",
"description": "src/views/User/UserProfile/BadgeNomadLabel/index.tsx"
@@ -2619,6 +2644,9 @@
"defaultMessage": "评论和回复",
"description": "src/views/Me/Settings/Notifications/GeneralSettings/index.tsx"
},
+ "dWt8c/": {
+ "defaultMessage": "Open the isolated browser container. It does not load the normal Matters bundle, so cross-origin isolation can be enabled for the zkID worker."
+ },
"dZlT9q": {
"defaultMessage": "已推荐你的这篇作品到频道:{channelNames},你对结果满意吗?"
},
@@ -2859,6 +2887,10 @@
"defaultMessage": "余额不足:",
"description": "src/components/Balance/index.tsx"
},
+ "hdbKK1": {
+ "defaultMessage": "动态",
+ "description": "src/components/Layout/SideChannelNav/index.tsx"
+ },
"hgtWIO": {
"defaultMessage": "作品被关联",
"description": "src/views/Me/Settings/Notifications/GeneralSettings/index.tsx"
@@ -3263,6 +3295,9 @@
"defaultMessage": "关注中",
"description": "src/components/UserProfile/index.tsx"
},
+ "ol0msv": {
+ "defaultMessage": "Copy TW FidO link"
+ },
"on+DYO": {
"defaultMessage": "确认报名"
},
@@ -3538,6 +3573,9 @@
"tWCQCd": {
"defaultMessage": "交易合約已将 {amount} USDT 发送至绑定钱包"
},
+ "tYDhrI": {
+ "defaultMessage": "申请通过之后,个人发出的动态将显示于此频道"
+ },
"tZKvnZ": {
"defaultMessage": "取消喜欢动态"
},
@@ -3902,6 +3940,9 @@
"z3uIHQ": {
"defaultMessage": "取消点赞"
},
+ "z5UXPc": {
+ "defaultMessage": "申请加入"
+ },
"z91BKe": {
"defaultMessage": "已归档作品",
"description": "src/components/Notice/NoticeArticleTitle.tsx"
@@ -3913,9 +3954,6 @@
"defaultMessage": "登录链接已发送至 {email}",
"description": "src/components/Forms/Verification/LinkSent.tsx"
},
- "zCCJPu": {
- "defaultMessage": "Run browser proof"
- },
"zE51j6": {
"defaultMessage": "发布失败"
},
diff --git a/lang/zh-Hant.json b/lang/zh-Hant.json
index 15eb944596..baf85330f7 100644
--- a/lang/zh-Hant.json
+++ b/lang/zh-Hant.json
@@ -376,9 +376,6 @@
"3EeDnu": {
"defaultMessage": "貼上 JSFiddle 或 CodePen 連結後,Enter 進行新增"
},
- "3HKaQ4": {
- "defaultMessage": "The next slice mounts the zkID in-browser worker here and submits the proof to Matters."
- },
"3KNMbJ": {
"defaultMessage": "作品"
},
@@ -493,6 +490,9 @@
"5XFd/5": {
"defaultMessage": "管理圍爐"
},
+ "5YuSaZ": {
+ "defaultMessage": "After TW FidO signs, continue here on desktop, or copy the Mac proof link to a desktop browser."
+ },
"5fjmnA": {
"defaultMessage": "碳基生物"
},
@@ -612,6 +612,9 @@
"defaultMessage": "編輯",
"description": "src/components/CircleComment/DropdownActions/EditButton.tsx"
},
+ "6wdAti": {
+ "defaultMessage": "還沒有動態"
+ },
"73iajM": {
"defaultMessage": "出錯了,請檢查你輸入的內容",
"description": "BAD_USER_INPUT"
@@ -623,6 +626,9 @@
"defaultMessage": "提現撤銷",
"description": "src/components/Transaction/index.tsx"
},
+ "7DJ8wF": {
+ "defaultMessage": "加入動態頻道"
+ },
"7HPPqs": {
"defaultMessage": "。{SuggestButton}?"
},
@@ -1074,6 +1080,9 @@
"DtO278": {
"defaultMessage": "檢測到近期你的多篇文章被推薦到相關頻道,它們有可能不會同時出現"
},
+ "Dx5Sas": {
+ "defaultMessage": "Copy Mac proof link"
+ },
"DyuHBH": {
"defaultMessage": "取消代表作",
"description": "src/components/CollectionDigest/DropdownActions/PinButton.tsx"
@@ -1178,6 +1187,9 @@
"defaultMessage": "目前非 Optimism 網路,立即切換?",
"description": "src/components/Forms/PaymentForm/SwitchNetwork/index.tsx"
},
+ "FXgOAP": {
+ "defaultMessage": "Browser handoff is ready. Browser proving is pending until the prover runs in a cross-origin isolated page."
+ },
"Fe682o": {
"defaultMessage": "下月預期營收",
"description": "src/views/Circle/Analytics/IncomeAnalytics/index.tsx"
@@ -1348,6 +1360,9 @@
"HzB4Lk": {
"defaultMessage": "告知讀者你此次編輯的更動有哪些⋯"
},
+ "I1eVEY": {
+ "defaultMessage": "已送出申請,待審核"
+ },
"I3v/Va": {
"defaultMessage": "PWA proof handoff"
},
@@ -1545,6 +1560,9 @@
"LWE7oq": {
"defaultMessage": "草稿儲存中,確定要離開嗎?"
},
+ "LXZyce": {
+ "defaultMessage": "你已經申請過了,請耐心等候審核"
+ },
"Lb0JsC": {
"defaultMessage": "你封鎖了該用戶"
},
@@ -1801,6 +1819,9 @@
"Q8Qw5B": {
"defaultMessage": "描述"
},
+ "QHRze5": {
+ "defaultMessage": "動態"
+ },
"QKJWqd": {
"defaultMessage": "收藏",
"description": "src/components/Buttons/TagBookmark/Bookmark.tsx"
@@ -2099,9 +2120,6 @@
"defaultMessage": "發布中,請稍候⋯",
"description": "src/components/Editor/PreviewDialog/index.tsx"
},
- "V3oaoZ": {
- "defaultMessage": "After TW FidO signs, continue in this browser. No native proof helper is required for this PWA path."
- },
"V5OMr4": {
"defaultMessage": "什麼是數字錢包?",
"description": "src/components/Forms/SelectAuthMethodForm/WalletFeed.tsx"
@@ -2113,6 +2131,9 @@
"VBve8d": {
"defaultMessage": "搬家到 Matters"
},
+ "VDclc3": {
+ "defaultMessage": "你已加入動態頻道,即日起發出的動態將顯示於此頻道"
+ },
"VFQGq7": {
"defaultMessage": "Check result"
},
@@ -2340,9 +2361,6 @@
"Z39z+x": {
"defaultMessage": "封鎖之後,{displayName} 將無法評論你的作品,不能 @ 你,並且不能加入你的圍爐。你可以在設置裏管理你的封鎖用戶列表。`"
},
- "Z4R3Lq": {
- "defaultMessage": "This browser page is missing a required PWA proving capability."
- },
"Z7JXlF": {
"defaultMessage": "因違反用戶協定而被封存,",
"description": "src/views/ArticleDetail/StickyTopBanner/index.tsx"
@@ -2446,6 +2464,9 @@
"defaultMessage": "前往首頁",
"description": "src/views/Callback/UI.tsx"
},
+ "atmn17": {
+ "defaultMessage": "Open isolated prover"
+ },
"awW+lk": {
"defaultMessage": "進行中…",
"description": "src/components/Transaction/State/index.tsx"
@@ -2583,6 +2604,10 @@
"d5bM8A": {
"defaultMessage": "投稿日程⋯"
},
+ "d95AX1": {
+ "defaultMessage": "我再想想",
+ "description": "src/views/HottestMoments/Apply/Dialog/index.tsx"
+ },
"dAPUJp": {
"defaultMessage": "流星雨的絢爛光芒足以點亮夜空。流星號徽章紀念你曾參與「遊牧者計畫」。",
"description": "src/views/User/UserProfile/BadgeNomadLabel/index.tsx"
@@ -2619,6 +2644,9 @@
"defaultMessage": "評論和回覆",
"description": "src/views/Me/Settings/Notifications/GeneralSettings/index.tsx"
},
+ "dWt8c/": {
+ "defaultMessage": "Open the isolated browser container. It does not load the normal Matters bundle, so cross-origin isolation can be enabled for the zkID worker."
+ },
"dZlT9q": {
"defaultMessage": "已推薦你的這篇作品到頻道:{channelNames},你對結果滿意嗎?"
},
@@ -2859,6 +2887,10 @@
"defaultMessage": "餘額不足:",
"description": "src/components/Balance/index.tsx"
},
+ "hdbKK1": {
+ "defaultMessage": "動態",
+ "description": "src/components/Layout/SideChannelNav/index.tsx"
+ },
"hgtWIO": {
"defaultMessage": "作品被關聯",
"description": "src/views/Me/Settings/Notifications/GeneralSettings/index.tsx"
@@ -3263,6 +3295,9 @@
"defaultMessage": "追蹤中",
"description": "src/components/UserProfile/index.tsx"
},
+ "ol0msv": {
+ "defaultMessage": "Copy TW FidO link"
+ },
"on+DYO": {
"defaultMessage": "確認報名"
},
@@ -3538,6 +3573,9 @@
"tWCQCd": {
"defaultMessage": "交易合約已將 {amount} USDT 發送至綁定錢包"
},
+ "tYDhrI": {
+ "defaultMessage": "申請通過之後,個人發出的動態將顯示於此頻道"
+ },
"tZKvnZ": {
"defaultMessage": "取消喜歡動態"
},
@@ -3902,6 +3940,9 @@
"z3uIHQ": {
"defaultMessage": "取消點讚"
},
+ "z5UXPc": {
+ "defaultMessage": "申請加入"
+ },
"z91BKe": {
"defaultMessage": "已封存作品",
"description": "src/components/Notice/NoticeArticleTitle.tsx"
@@ -3913,9 +3954,6 @@
"defaultMessage": "登入連結已發送至 {email}",
"description": "src/components/Forms/Verification/LinkSent.tsx"
},
- "zCCJPu": {
- "defaultMessage": "Run browser proof"
- },
"zE51j6": {
"defaultMessage": "發布失敗"
},
diff --git a/src/common/enums/events.ts b/src/common/enums/events.ts
index 31bf840057..d4a3ca8e8f 100644
--- a/src/common/enums/events.ts
+++ b/src/common/enums/events.ts
@@ -81,6 +81,7 @@ export enum UNIVERSAL_AUTH_TRIGGER {
momentLike = 'momentLike',
applyCampaign = 'applyCampaign',
collectionLike = 'collectionLike',
+ applyMomentFeed = 'applyMomentFeed',
}
// Editor
diff --git a/src/common/enums/route.ts b/src/common/enums/route.ts
index da080bdbfd..d8229b49fc 100644
--- a/src/common/enums/route.ts
+++ b/src/common/enums/route.ts
@@ -9,6 +9,7 @@ type ROUTE_KEY =
| 'HOME'
| 'FEATURED'
| 'HOTTEST'
+ | 'HOTTEST_MOMENTS'
| 'NEWEST'
| 'CHANNEL'
| 'FOLLOW'
@@ -161,6 +162,7 @@ export const ROUTES: {
{ key: 'HOME', pathname: '/' },
{ key: 'FEATURED', pathname: '/featured' },
{ key: 'HOTTEST', pathname: '/hottest' },
+ { key: 'HOTTEST_MOMENTS', pathname: '/moments' },
{ key: 'NEWEST', pathname: '/newest' },
{ key: 'CHANNEL', pathname: '/c/[shortHash]' },
{ key: 'FOLLOW', pathname: '/follow' },
diff --git a/src/components/Context/Viewer/index.tsx b/src/components/Context/Viewer/index.tsx
index b3812c9b8e..529b5264e5 100644
--- a/src/components/Context/Viewer/index.tsx
+++ b/src/components/Context/Viewer/index.tsx
@@ -65,6 +65,7 @@ const ViewerFragments = {
private: gql`
fragment ViewerUserPrivate on User {
id
+ isMomentFeedApplied
info {
socialAccounts {
type
diff --git a/src/components/Layout/SideChannelNav/index.tsx b/src/components/Layout/SideChannelNav/index.tsx
index d787aac570..9b424aac6e 100644
--- a/src/components/Layout/SideChannelNav/index.tsx
+++ b/src/components/Layout/SideChannelNav/index.tsx
@@ -114,6 +114,26 @@ const SideChannelNav = () => {
+ onTabClick('hottest_moments')}
+ >
+
+
+
+
+
+
+
{channels.map((c) => (
))}
diff --git a/src/components/Layout/index.tsx b/src/components/Layout/index.tsx
index afec15497a..0672842387 100644
--- a/src/components/Layout/index.tsx
+++ b/src/components/Layout/index.tsx
@@ -96,6 +96,7 @@ const useLayoutType = () => {
isHome ||
isInPath('FEATURED') ||
isInPath('HOTTEST') ||
+ isInPath('HOTTEST_MOMENTS') ||
isInPath('NEWEST') ||
isInPath('CHANNEL') ||
isInPath('FOLLOW') ||
diff --git a/src/components/MomentDigest/DropdownActions/RevokeMomentFeed.tsx b/src/components/MomentDigest/DropdownActions/RevokeMomentFeed.tsx
new file mode 100644
index 0000000000..fbdd40e963
--- /dev/null
+++ b/src/components/MomentDigest/DropdownActions/RevokeMomentFeed.tsx
@@ -0,0 +1,35 @@
+import gql from 'graphql-tag'
+
+import IconCircleMinus from '@/public/static/icons/24px/circle-minus.svg'
+import { Icon, Menu, toast, useMutation } from '~/components'
+import { RevokeMomentFeedMutation } from '~/gql/graphql'
+
+const REVOKE_MOMENT_FEED = gql`
+ mutation RevokeMomentFeed($id: ID!) {
+ updateMomentFeedApplicationState(input: { id: $id, state: revoked }) {
+ id
+ isMomentFeedApplied
+ }
+ }
+`
+
+const RevokeMomentFeed = ({ userId }: { userId: string }) => {
+ const [revoke] = useMutation(REVOKE_MOMENT_FEED, {
+ variables: { id: userId },
+ })
+
+ return (
+ }
+ onClick={async () => {
+ try {
+ await revoke()
+ toast.success({ message: '已撤銷資格' })
+ } catch {}
+ }}
+ />
+ )
+}
+
+export default RevokeMomentFeed
diff --git a/src/components/MomentDigest/DropdownActions/ToggleAdMoment.tsx b/src/components/MomentDigest/DropdownActions/ToggleAdMoment.tsx
new file mode 100644
index 0000000000..f261af2682
--- /dev/null
+++ b/src/components/MomentDigest/DropdownActions/ToggleAdMoment.tsx
@@ -0,0 +1,82 @@
+import { useQuery } from '@apollo/client'
+import gql from 'graphql-tag'
+
+import IconPin from '@/public/static/icons/24px/pin.svg'
+import IconUnpin from '@/public/static/icons/24px/unpin.svg'
+import { Icon, Menu, Spinner, toast, useMutation } from '~/components'
+import { FetchMomentAdStatusQuery, ToggleAdMomentMutation } from '~/gql/graphql'
+
+const fragments = {
+ moment: gql`
+ fragment ToggleAdMomentMoment on Moment {
+ id
+ adStatus {
+ isAd
+ }
+ }
+ `,
+}
+
+const TOGGLE_AD_MOMENT = gql`
+ mutation ToggleAdMoment($momentId: ID!, $isAd: Boolean!) {
+ setWritingAdStatus(input: { id: $momentId, isAd: $isAd }) {
+ ... on Moment {
+ id
+ ...ToggleAdMomentMoment
+ }
+ }
+ }
+ ${fragments.moment}
+`
+
+const FETCH_MOMENT_AD_STATUS = gql`
+ query FetchMomentAdStatus($shortHash: String!) {
+ moment(input: { shortHash: $shortHash }) {
+ ...ToggleAdMomentMoment
+ }
+ }
+ ${fragments.moment}
+`
+
+const ToggleAdMoment = ({ shortHash }: { shortHash: string }) => {
+ const { data, loading } = useQuery(
+ FETCH_MOMENT_AD_STATUS,
+ {
+ variables: {
+ shortHash,
+ },
+ }
+ )
+
+ const isAd = data?.moment?.adStatus.isAd
+ const momentId = data?.moment?.id
+
+ const [update] = useMutation(TOGGLE_AD_MOMENT, {
+ variables: {
+ momentId,
+ isAd: !isAd,
+ },
+ })
+
+ if (loading) {
+ return
+ }
+
+ return (
+ }
+ onClick={async () => {
+ await update()
+
+ toast.success({
+ message: isAd ? '已取消標記廣告' : '已標記廣告',
+ })
+ }}
+ />
+ )
+}
+
+ToggleAdMoment.fragments = fragments
+
+export default ToggleAdMoment
diff --git a/src/components/MomentDigest/DropdownActions/index.tsx b/src/components/MomentDigest/DropdownActions/index.tsx
index 7fe7c107ef..bcc1614ddb 100644
--- a/src/components/MomentDigest/DropdownActions/index.tsx
+++ b/src/components/MomentDigest/DropdownActions/index.tsx
@@ -20,6 +20,15 @@ import {
} from '~/components'
import { SubmitReportDialogProps } from '~/components/Dialogs/SubmitReportDialog/Dialog'
import { MomentDigestDropdownActionsMomentFragment } from '~/gql/graphql'
+import { ArchiveUserDialogProps } from '~/views/User/UserProfile/DropdownActions/ArchiveUser/Dialog'
+import {
+ OpenToggleFreezeUserDialogWithProps,
+ ToggleFreezeUserDialogProps,
+} from '~/views/User/UserProfile/DropdownActions/ToggleFreezeUser/Dialog'
+import {
+ OpenToggleRestrictUserDialogWithProps,
+ ToggleRestrictUserDialogProps,
+} from '~/views/User/UserProfile/DropdownActions/ToggleRestrictUser/Dialog'
import DeleteMoment from './DeleteMoment'
import { DeleteMomentDialogProps } from './DeleteMoment/Dialog'
@@ -33,10 +42,55 @@ const DynamicToggleSpamButton = dynamic(
}
)
+const DynamicToggleAdMomentButton = dynamic(() => import('./ToggleAdMoment'), {
+ loading: () => ,
+})
+
+const DynamicRevokeMomentFeedButton = dynamic(
+ () => import('./RevokeMomentFeed'),
+ {
+ loading: () => ,
+ }
+)
+
+const DynamicToggleFreezeUserButton = dynamic(
+ () =>
+ import('~/views/User/UserProfile/DropdownActions/ToggleFreezeUser/Button'),
+ { loading: () => }
+)
+const DynamicToggleFreezeUserDialog = dynamic(
+ () =>
+ import('~/views/User/UserProfile/DropdownActions/ToggleFreezeUser/Dialog'),
+ { loading: () => }
+)
+const DynamicToggleRestrictUserButton = dynamic(
+ () =>
+ import(
+ '~/views/User/UserProfile/DropdownActions/ToggleRestrictUser/Button'
+ ),
+ { loading: () => }
+)
+const DynamicToggleRestrictUserDialog = dynamic(
+ () =>
+ import(
+ '~/views/User/UserProfile/DropdownActions/ToggleRestrictUser/Dialog'
+ ),
+ { loading: () => }
+)
+const DynamicArchiveUserButton = dynamic(
+ () => import('~/views/User/UserProfile/DropdownActions/ArchiveUser/Button'),
+ { loading: () => }
+)
+const DynamicArchiveUserDialog = dynamic(
+ () => import('~/views/User/UserProfile/DropdownActions/ArchiveUser/Dialog'),
+ { loading: () => }
+)
+
const fragments = {
moment: gql`
fragment MomentDigestDropdownActionsMoment on Moment {
id
+ shortHash
state
author {
id
@@ -58,6 +112,13 @@ interface Controls {
interface DialogProps {
openDeleteMomentDialog: () => void
openSubmitReportDialog: () => void
+ openToggleRestrictUserDialog: (
+ props: OpenToggleRestrictUserDialogWithProps
+ ) => void
+ openToggleFreezeUserDialog: (
+ props: OpenToggleFreezeUserDialogWithProps
+ ) => void
+ openArchiveUserDialog: () => void
}
type BaseDropdownActionsProps = DropdownActionsProps & Controls & DialogProps
@@ -69,6 +130,9 @@ const BaseDropdownActions = ({
openDeleteMomentDialog,
openSubmitReportDialog,
+ openToggleRestrictUserDialog,
+ openToggleFreezeUserDialog,
+ openArchiveUserDialog,
}: BaseDropdownActionsProps) => {
const viewer = useContext(ViewerContext)
@@ -84,6 +148,17 @@ const BaseDropdownActions = ({
<>
+
+
+
+
+
>
)}
@@ -164,7 +239,44 @@ const DropdownActions = (props: DropdownActionsProps) => {
}
})
- return
+ const WithToggleRestrictUser = withDialog<
+ Omit
+ >(
+ WithDeleteMoment,
+ DynamicToggleRestrictUserDialog as React.ComponentType<
+ Omit & {
+ children: (props: { openDialog: () => void }) => React.ReactNode
+ }
+ >,
+ { id: moment.author.id, userName: moment.author.userName! },
+ ({ openDialog }) => ({
+ openToggleRestrictUserDialog: openDialog,
+ })
+ )
+
+ const WithToggleFreezeUser = withDialog<
+ Omit
+ >(
+ WithToggleRestrictUser,
+ DynamicToggleFreezeUserDialog as React.ComponentType<
+ Omit & {
+ children: (props: { openDialog: () => void }) => React.ReactNode
+ }
+ >,
+ { id: moment.author.id, userName: moment.author.userName! },
+ ({ openDialog }) => ({
+ openToggleFreezeUserDialog: openDialog,
+ })
+ )
+
+ const WithArchiveUser = withDialog>(
+ WithToggleFreezeUser,
+ DynamicArchiveUserDialog,
+ { id: moment.author.id, userName: moment.author.userName! },
+ ({ openDialog }) => ({ openArchiveUserDialog: openDialog })
+ )
+
+ return
}
DropdownActions.fragments = fragments
diff --git a/src/components/Notice/UserNotice/MomentFeedApproved.tsx b/src/components/Notice/UserNotice/MomentFeedApproved.tsx
new file mode 100644
index 0000000000..4ad0286e81
--- /dev/null
+++ b/src/components/Notice/UserNotice/MomentFeedApproved.tsx
@@ -0,0 +1,49 @@
+import gql from 'graphql-tag'
+import Link from 'next/link'
+import { FormattedMessage } from 'react-intl'
+
+import { PATHS } from '~/common/enums'
+import { MomentFeedApprovedFragment } from '~/gql/graphql'
+
+import NoticeCard from '../NoticeCard'
+import NoticeDate from '../NoticeDate'
+import officialStyles from '../OfficialNotice/styles.module.css'
+
+const MomentFeedApproved = ({
+ notice,
+}: {
+ notice: MomentFeedApprovedFragment
+}) => {
+ const Message = () => (
+
+
+
+ )
+
+ return (
+
+
+
+ }
+ />
+ )
+}
+
+MomentFeedApproved.fragments = {
+ notice: gql`
+ fragment MomentFeedApproved on UserNotice {
+ id
+ ...NoticeDate
+ }
+ ${NoticeDate.fragments.notice}
+ `,
+}
+
+export default MomentFeedApproved
diff --git a/src/components/Notice/UserNotice/index.tsx b/src/components/Notice/UserNotice/index.tsx
index 7b9ef667ec..116cb72be0 100644
--- a/src/components/Notice/UserNotice/index.tsx
+++ b/src/components/Notice/UserNotice/index.tsx
@@ -2,12 +2,15 @@ import gql from 'graphql-tag'
import { UserNoticeFragment } from '~/gql/graphql'
+import MomentFeedApproved from './MomentFeedApproved'
import UserNewFollower from './UserNewFollower'
const UserNotice = ({ notice }: { notice: UserNoticeFragment }) => {
switch (notice.userNoticeType) {
case 'UserNewFollower':
return
+ case 'MomentFeedApproved':
+ return
default:
return null
}
@@ -21,8 +24,10 @@ UserNotice.fragments = {
__typename
userNoticeType: type
...UserNewFollower
+ ...MomentFeedApproved
}
${UserNewFollower.fragments.notice}
+ ${MomentFeedApproved.fragments.notice}
`,
}
diff --git a/src/gql/graphql.ts b/src/gql/graphql.ts
deleted file mode 100644
index c7b87b1e37..0000000000
--- a/src/gql/graphql.ts
+++ /dev/null
@@ -1,32980 +0,0 @@
-export type Maybe = T | null
-export type InputMaybe = Maybe
-export type Exact = {
- [K in keyof T]: T[K]
-}
-export type MakeOptional = Omit & {
- [SubKey in K]?: Maybe
-}
-export type MakeMaybe = Omit & {
- [SubKey in K]: Maybe
-}
-export type MakeEmpty<
- T extends { [key: string]: unknown },
- K extends keyof T,
-> = { [_ in K]?: never }
-export type Incremental =
- | T
- | {
- [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never
- }
-/** All built-in and custom scalars, mapped to their actual values */
-export type Scalars = {
- ID: { input: string; output: string }
- String: { input: string; output: string }
- Boolean: { input: boolean; output: boolean }
- Int: { input: number; output: number }
- Float: { input: number; output: number }
- /** A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the `date-time` format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar. */
- DateTime: { input: any; output: any }
- Upload: { input: any; output: any }
- amount_Float_NotNull_exclusiveMin_0: { input: any; output: any }
- amount_Float_exclusiveMin_0: { input: any; output: any }
- amount_Int_NotNull_min_1: { input: any; output: any }
- banDays_Int_exclusiveMin_0: { input: any; output: any }
- boost_Float_NotNull_min_0: { input: any; output: any }
- description_String_maxLength_140: { input: any; output: any }
- email_String_NotNull_format_email: { input: any; output: any }
- email_String_format_email: { input: any; output: any }
- first_Int_NotNull_min_0: { input: any; output: any }
- first_Int_min_0: { input: any; output: any }
- freePeriod_Int_NotNull_exclusiveMin_0: { input: any; output: any }
- last_Int_min_0: { input: any; output: any }
- link_String_NotNull_format_uri: { input: any; output: any }
- link_String_format_uri: { input: any; output: any }
- random_Int_min_0_max_49: { input: any; output: any }
- redirectUrl_String_format_uri: { input: any; output: any }
- replyToDonator_String_maxLength_140: { input: any; output: any }
- requestForDonation_String_maxLength_140: { input: any; output: any }
- url_String_format_uri: { input: any; output: any }
- website_String_format_uri: { input: any; output: any }
-}
-
-export type AdStatus = {
- __typename?: 'AdStatus'
- /** Whether this article is labeled as ad by human, null for not labeled yet. */
- isAd?: Maybe
-}
-
-export type AddCollectionsArticlesInput = {
- articles: Array
- collections: Array
-}
-
-export type AddCreditInput = {
- amount: Scalars['amount_Float_NotNull_exclusiveMin_0']['input']
-}
-
-export type AddCreditResult = {
- __typename?: 'AddCreditResult'
- /** The client secret of this PaymentIntent. */
- client_secret: Scalars['String']['output']
- transaction: Transaction
-}
-
-export type AddCurationChannelArticlesInput = {
- articles: Array
- channel: Scalars['ID']['input']
-}
-
-export type Announcement = {
- __typename?: 'Announcement'
- channels: Array
- content?: Maybe
- cover?: Maybe
- createdAt: Scalars['DateTime']['output']
- expiredAt?: Maybe
- id: Scalars['ID']['output']
- link?: Maybe
- order: Scalars['Int']['output']
- title?: Maybe
- /** @deprecated Use title, content, link with TranslationArgs instead */
- translations?: Maybe>
- type: AnnouncementType
- updatedAt: Scalars['DateTime']['output']
- visible: Scalars['Boolean']['output']
-}
-
-export type AnnouncementContentArgs = {
- input?: InputMaybe
-}
-
-export type AnnouncementLinkArgs = {
- input?: InputMaybe
-}
-
-export type AnnouncementTitleArgs = {
- input?: InputMaybe
-}
-
-export type AnnouncementChannel = {
- __typename?: 'AnnouncementChannel'
- channel: Channel
- order: Scalars['Int']['output']
- visible: Scalars['Boolean']['output']
-}
-
-export type AnnouncementChannelInput = {
- channel: Scalars['ID']['input']
- order: Scalars['Int']['input']
- visible: Scalars['Boolean']['input']
-}
-
-export enum AnnouncementType {
- Community = 'community',
- Product = 'product',
- Seminar = 'seminar',
-}
-
-export type AnnouncementsInput = {
- channel?: InputMaybe
- id?: InputMaybe
- visible?: InputMaybe
-}
-
-export type ApplyCampaignInput = {
- id: Scalars['ID']['input']
-}
-
-export type AppreciateArticleInput = {
- amount: Scalars['amount_Int_NotNull_min_1']['input']
- id: Scalars['ID']['input']
- superLike?: InputMaybe
- token?: InputMaybe
-}
-
-export type Appreciation = {
- __typename?: 'Appreciation'
- amount: Scalars['Int']['output']
- content: Scalars['String']['output']
- /** Timestamp of appreciation. */
- createdAt: Scalars['DateTime']['output']
- purpose: AppreciationPurpose
- /** Recipient of appreciation. */
- recipient: User
- /** Sender of appreciation. */
- sender?: Maybe
- /** Object that appreciation is meant for. */
- target?: Maybe
-}
-
-export type AppreciationConnection = Connection & {
- __typename?: 'AppreciationConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type AppreciationEdge = {
- __typename?: 'AppreciationEdge'
- cursor: Scalars['String']['output']
- node: Appreciation
-}
-
-export enum AppreciationPurpose {
- Appreciate = 'appreciate',
- AppreciateComment = 'appreciateComment',
- AppreciateSubsidy = 'appreciateSubsidy',
- FirstPost = 'firstPost',
- InvitationAccepted = 'invitationAccepted',
- JoinByInvitation = 'joinByInvitation',
- JoinByTask = 'joinByTask',
- SystemSubsidy = 'systemSubsidy',
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type Article = Node &
- PinnableWork & {
- __typename?: 'Article'
- /** Access related fields on circle */
- access: ArticleAccess
- /** Number represents how many times per user can appreciate this article. */
- appreciateLeft: Scalars['Int']['output']
- /** Limit the nuhmber of appreciate per user. */
- appreciateLimit: Scalars['Int']['output']
- /** Appreciations history of this article. */
- appreciationsReceived: AppreciationConnection
- /** Total number of appreciations recieved of this article. */
- appreciationsReceivedTotal: Scalars['Int']['output']
- /** List of assets are belonged to this article (Only the author can access currently). */
- assets: Array
- /** Author of this article. */
- author: User
- /** Available translation languages. */
- availableTranslations?: Maybe>
- /** The number of users who bookmarked this article. */
- bookmarkCount: Scalars['Int']['output']
- bookmarked: Scalars['Boolean']['output']
- /** Associated campaigns */
- campaigns: Array
- /** Whether readers can comment */
- canComment: Scalars['Boolean']['output']
- /** This value determines if current viewer can SuperLike or not. */
- canSuperLike: Scalars['Boolean']['output']
- /** Classifications status */
- classification: ArticleClassification
- /**
- * List of articles added into this article's connections.
- * @deprecated Use connections instead
- */
- collection: ArticleConnection
- /** Collections of this article. */
- collections: CollectionConnection
- /** The counting number of comments. */
- commentCount: Scalars['Int']['output']
- /** List of comments of this article. */
- comments: CommentConnection
- /** List of articles which added this article into their connections. */
- connectedBy: ArticleConnection
- connections: ArticleConnection
- /** Content (HTML) of this article. */
- content: Scalars['String']['output']
- /** Different foramts of content. */
- contents: ArticleContents
- /** Article cover's link, set by author */
- cover?: Maybe
- /** Time of this article was created. */
- createdAt: Scalars['DateTime']['output']
- /** IPFS hash of this article. */
- dataHash: Scalars['String']['output']
- /** Cover link that is displayed on the article page */
- displayCover?: Maybe
- /** Whether current viewer has donated to this article */
- donated: Scalars['Boolean']['output']
- /** Total number of donation recieved of this article. */
- donationCount: Scalars['Int']['output']
- /** Donations of this article, grouped by sender */
- donations: ArticleDonationConnection
- /** List of featured comments of this article. */
- featuredComments: CommentConnection
- /** Computed federation export eligibility for this article. */
- federationEligibility: ArticleFederationEligibility
- /** Article-level federation setting override. */
- federationSetting?: Maybe
- /** This value determines if current viewer has appreciated or not. */
- hasAppreciate: Scalars['Boolean']['output']
- /** Unique ID of this article */
- id: Scalars['ID']['output']
- /** Whether the first line of paragraph should be indented */
- indentFirstLine: Scalars['Boolean']['output']
- /** The iscnId if published to ISCN */
- iscnId?: Maybe
- /** Original language of content */
- language?: Maybe
- /** License Type */
- license: ArticleLicenseType
- /** Media hash, composed of cid encoding, of this article. */
- mediaHash: Scalars['String']['output']
- /** Whether this article is noindex */
- noindex: Scalars['Boolean']['output']
- oss: ArticleOss
- /** The number determines how many comments can be set as pinned comment. */
- pinCommentLeft: Scalars['Int']['output']
- /** The number determines how many pinned comments can be set. */
- pinCommentLimit: Scalars['Int']['output']
- /** This value determines if this article is an author selected article or not. */
- pinned: Scalars['Boolean']['output']
- /** List of pinned comments. */
- pinnedComments?: Maybe>
- /** Cumulative reading time in seconds */
- readTime: Scalars['Float']['output']
- /** Total number of readers of this article. */
- readerCount: Scalars['Int']['output']
- /** Related articles to this article. */
- relatedArticles: ArticleConnection
- /** Donation-related articles to this article. */
- relatedDonationArticles: ArticleConnection
- remark?: Maybe
- /** Creator message after support */
- replyToDonator?: Maybe
- /** Creator message asking for support */
- requestForDonation?: Maybe
- /** The counting number of this article. */
- responseCount: Scalars['Int']['output']
- /** List of responses of a article. */
- responses: ResponseConnection
- /** Time of this article was revised. */
- revisedAt?: Maybe
- /** Revision Count */
- revisionCount: Scalars['Int']['output']
- /** Whether content is marked as sensitive by admin */
- sensitiveByAdmin: Scalars['Boolean']['output']
- /** whether content is marked as sensitive by author */
- sensitiveByAuthor: Scalars['Boolean']['output']
- /** Short hash for shorter url addressing */
- shortHash: Scalars['String']['output']
- /** Slugified article title. */
- slug: Scalars['String']['output']
- /** State of this article. */
- state: ArticleState
- /**
- * This value determines if current Viewer has bookmarked of not.
- * @deprecated Use bookmarked instead
- */
- subscribed: Scalars['Boolean']['output']
- /** A short summary for this article. */
- summary: Scalars['String']['output']
- /** This value determines if the summary is customized or not. */
- summaryCustomized: Scalars['Boolean']['output']
- /** Tags attached to this article. */
- tags?: Maybe>
- /** Article title. */
- title: Scalars['String']['output']
- /** Transactions history of this article. */
- transactionsReceivedBy: UserConnection
- /** Translation of article title and content. */
- translation?: Maybe
- /** History versions */
- versions: ArticleVersionsConnection
- /** Word count of this article. */
- wordCount?: Maybe
- }
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleAppreciationsReceivedArgs = {
- input: ConnectionArgs
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleCollectionArgs = {
- input: ConnectionArgs
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleCollectionsArgs = {
- input: ConnectionArgs
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleCommentsArgs = {
- input: CommentsInput
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleConnectedByArgs = {
- input: ConnectionArgs
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleConnectionsArgs = {
- input: ConnectionArgs
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleDonationsArgs = {
- input: ConnectionArgs
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleFeaturedCommentsArgs = {
- input: FeaturedCommentsInput
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleRelatedArticlesArgs = {
- input: ConnectionArgs
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleRelatedDonationArticlesArgs = {
- input: RelatedDonationArticlesInput
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleResponsesArgs = {
- input: ResponsesInput
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleTransactionsReceivedByArgs = {
- input: TransactionsReceivedByArgs
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleTranslationArgs = {
- input?: InputMaybe
-}
-
-/**
- * This type contains metadata, content, hash and related data of an article. If you
- * want information about article's comments. Please check Comment type.
- */
-export type ArticleVersionsArgs = {
- input: ArticleVersionsInput
-}
-
-export type ArticleAccess = {
- __typename?: 'ArticleAccess'
- circle?: Maybe
- secret?: Maybe
- type: ArticleAccessType
-}
-
-/** Enums for types of article access */
-export enum ArticleAccessType {
- Paywall = 'paywall',
- Public = 'public',
-}
-
-export type ArticleArticleNotice = Notice & {
- __typename?: 'ArticleArticleNotice'
- /** List of notice actors. */
- actors?: Maybe>
- article: Article
- /** Time of this notice was created. */
- createdAt: Scalars['DateTime']['output']
- /** Unique ID of this notice. */
- id: Scalars['ID']['output']
- target: Article
- type: ArticleArticleNoticeType
- /** The value determines if the notice is unread or not. */
- unread: Scalars['Boolean']['output']
-}
-
-export enum ArticleArticleNoticeType {
- ArticleNewCollected = 'ArticleNewCollected',
-}
-
-export type ArticleCampaign = {
- __typename?: 'ArticleCampaign'
- campaign: Campaign
- stage?: Maybe
-}
-
-export type ArticleCampaignInput = {
- campaign: Scalars['ID']['input']
- stage?: InputMaybe
-}
-
-export type ArticleClassification = {
- __typename?: 'ArticleClassification'
- topicChannel: TopicChannelClassification
-}
-
-export type ArticleConnection = Connection & {
- __typename?: 'ArticleConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type ArticleContents = {
- __typename?: 'ArticleContents'
- /** HTML content of this article. */
- html: Scalars['String']['output']
- /** Markdown content of this article. */
- markdown: Scalars['String']['output']
-}
-
-export type ArticleDonation = {
- __typename?: 'ArticleDonation'
- id: Scalars['ID']['output']
- sender?: Maybe
-}
-
-export type ArticleDonationConnection = {
- __typename?: 'ArticleDonationConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type ArticleDonationEdge = {
- __typename?: 'ArticleDonationEdge'
- cursor: Scalars['String']['output']
- node: ArticleDonation
-}
-
-export type ArticleEdge = {
- __typename?: 'ArticleEdge'
- cursor: Scalars['String']['output']
- node: Article
-}
-
-export type ArticleFederationEligibility = {
- __typename?: 'ArticleFederationEligibility'
- effectiveArticleSetting: FederationArticleSettingState
- eligible: Scalars['Boolean']['output']
- reason: FederationExportDecisionReason
-}
-
-export type ArticleFederationSetting = {
- __typename?: 'ArticleFederationSetting'
- articleId: Scalars['ID']['output']
- state: FederationArticleSettingState
- updatedBy?: Maybe
-}
-
-export type ArticleInput = {
- mediaHash?: InputMaybe
- shortHash?: InputMaybe
-}
-
-/** Enums for types of article license */
-export enum ArticleLicenseType {
- Arr = 'arr',
- Cc_0 = 'cc_0',
- CcByNcNd_2 = 'cc_by_nc_nd_2',
- CcByNcNd_4 = 'cc_by_nc_nd_4',
-}
-
-export type ArticleNotice = Notice & {
- __typename?: 'ArticleNotice'
- /** List of notice actors. */
- actors?: Maybe>
- /** Time of this notice was created. */
- createdAt: Scalars['DateTime']['output']
- entities: Array
- /** Unique ID of this notice. */
- id: Scalars['ID']['output']
- target: Article
- type: ArticleNoticeType
- /** The value determines if the notice is unread or not. */
- unread: Scalars['Boolean']['output']
-}
-
-export enum ArticleNoticeType {
- ArticleMentionedYou = 'ArticleMentionedYou',
- ArticleNewAppreciation = 'ArticleNewAppreciation',
- ArticleNewSubscriber = 'ArticleNewSubscriber',
- ArticlePublished = 'ArticlePublished',
- CircleNewArticle = 'CircleNewArticle',
- RevisedArticleNotPublished = 'RevisedArticleNotPublished',
- RevisedArticlePublished = 'RevisedArticlePublished',
- ScheduledArticlePublished = 'ScheduledArticlePublished',
- TopicChannelFeedbackAccepted = 'TopicChannelFeedbackAccepted',
-}
-
-export type ArticleOss = {
- __typename?: 'ArticleOSS'
- adStatus: AdStatus
- boost: Scalars['Float']['output']
- inRecommendHottest: Scalars['Boolean']['output']
- inRecommendIcymi: Scalars['Boolean']['output']
- inRecommendNewest: Scalars['Boolean']['output']
- inSearch: Scalars['Boolean']['output']
- pinHistory: Array>
- score: Scalars['Float']['output']
- spamStatus: SpamStatus
- /** @deprecated Use classification.topicChannel.channels instead */
- topicChannels?: Maybe>
-}
-
-export type ArticleRecommendationActivity = {
- __typename?: 'ArticleRecommendationActivity'
- /** Recommended articles */
- nodes?: Maybe>
- /** The source type of recommendation */
- source?: Maybe
-}
-
-export enum ArticleRecommendationActivitySource {
- ReadArticlesTags = 'ReadArticlesTags',
- UserDonation = 'UserDonation',
-}
-
-/** Enums for an article state. */
-export enum ArticleState {
- Active = 'active',
- Archived = 'archived',
- Banned = 'banned',
-}
-
-export type ArticleTopicChannel = {
- __typename?: 'ArticleTopicChannel'
- /** Whether this article is filtered out by anti-flood in this channel */
- antiFlooded: Scalars['Boolean']['output']
- channel: TopicChannel
- /** Datetime when this article is classified */
- classicfiedAt: Scalars['DateTime']['output']
- /** Whether this article channel is enabled */
- enabled: Scalars['Boolean']['output']
- /** Whether this article is labeled by human, null for not labeled yet. */
- isLabeled: Scalars['Boolean']['output']
- /** Whether this article is pinned */
- pinned: Scalars['Boolean']['output']
- /** Confident score by machine */
- score?: Maybe
-}
-
-export type ArticleTranslation = {
- __typename?: 'ArticleTranslation'
- content?: Maybe
- language?: Maybe
- model?: Maybe
- summary?: Maybe
- title?: Maybe
-}
-
-export type ArticleTranslationInput = {
- language: UserLanguage
- model?: InputMaybe
-}
-
-export type ArticleVersion = Node & {
- __typename?: 'ArticleVersion'
- contents: ArticleContents
- createdAt: Scalars['DateTime']['output']
- dataHash?: Maybe
- description?: Maybe
- id: Scalars['ID']['output']
- mediaHash?: Maybe
- summary: Scalars['String']['output']
- title: Scalars['String']['output']
- translation?: Maybe
-}
-
-export type ArticleVersionTranslationArgs = {
- input?: InputMaybe
-}
-
-export type ArticleVersionEdge = {
- __typename?: 'ArticleVersionEdge'
- cursor: Scalars['String']['output']
- node: ArticleVersion
-}
-
-export type ArticleVersionsConnection = Connection & {
- __typename?: 'ArticleVersionsConnection'
- edges: Array>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type ArticleVersionsInput = {
- after?: InputMaybe
- first?: InputMaybe
-}
-
-export enum ArticlesSort {
- MostAppreciations = 'mostAppreciations',
- MostBookmarks = 'mostBookmarks',
- MostComments = 'mostComments',
- MostDonations = 'mostDonations',
- MostReadTime = 'mostReadTime',
- Newest = 'newest',
-}
-
-/** This type contains type, link and related data of an asset. */
-export type Asset = {
- __typename?: 'Asset'
- /** Time of this asset was created. */
- createdAt: Scalars['DateTime']['output']
- draft?: Maybe
- /** Unique ID of this Asset. */
- id: Scalars['ID']['output']
- /** Link of this asset. */
- path: Scalars['String']['output']
- /** Types of this asset. */
- type: AssetType
- uploadURL?: Maybe
-}
-
-/** Enums for asset types. */
-export enum AssetType {
- AnnouncementCover = 'announcementCover',
- Avatar = 'avatar',
- CampaignCover = 'campaignCover',
- CircleAvatar = 'circleAvatar',
- CircleCover = 'circleCover',
- CollectionCover = 'collectionCover',
- Cover = 'cover',
- Embed = 'embed',
- Embedaudio = 'embedaudio',
- Moment = 'moment',
- OauthClientAvatar = 'oauthClientAvatar',
- ProfileCover = 'profileCover',
- TagCover = 'tagCover',
-}
-
-export type AuthResult = {
- __typename?: 'AuthResult'
- auth: Scalars['Boolean']['output']
- token?: Maybe
- type: AuthResultType
- user?: Maybe
-}
-
-export enum AuthResultType {
- LinkAccount = 'LinkAccount',
- Login = 'Login',
- Signup = 'Signup',
-}
-
-export enum AuthorsType {
- Active = 'active',
- Appreciated = 'appreciated',
- Default = 'default',
- Trendy = 'trendy',
-}
-
-export type Badge = {
- __typename?: 'Badge'
- type: BadgeType
-}
-
-export enum BadgeType {
- Architect = 'architect',
- CarbonBased = 'carbon_based',
- CommunityWatch = 'community_watch',
- GoldenMotor = 'golden_motor',
- GrandSlam = 'grand_slam',
- Nomad1 = 'nomad1',
- Nomad2 = 'nomad2',
- Nomad3 = 'nomad3',
- Nomad4 = 'nomad4',
- Seed = 'seed',
-}
-
-export type BadgedUsersInput = {
- after?: InputMaybe
- first?: InputMaybe
- type?: InputMaybe
-}
-
-export type Balance = {
- __typename?: 'Balance'
- HKD: Scalars['Float']['output']
-}
-
-export type BanCampaignArticlesInput = {
- articles: Array
- campaign: Scalars['ID']['input']
-}
-
-export type BlockchainTransaction = {
- __typename?: 'BlockchainTransaction'
- chain: Chain
- txHash: Scalars['String']['output']
-}
-
-export type BlockedSearchKeyword = {
- __typename?: 'BlockedSearchKeyword'
- /** Time of this search keyword was created. */
- createdAt: Scalars['DateTime']['output']
- /** Unique ID of bloked search keyword. */
- id: Scalars['ID']['output']
- /** Types of this search keyword. */
- searchKey: Scalars['String']['output']
-}
-
-export enum BoostTypes {
- Article = 'Article',
- Campaign = 'Campaign',
- Tag = 'Tag',
- User = 'User',
-}
-
-export enum CacheControlScope {
- Private = 'PRIVATE',
- Public = 'PUBLIC',
-}
-
-export type Campaign = {
- id: Scalars['ID']['output']
- name: Scalars['String']['output']
- shortHash: Scalars['String']['output']
- state: CampaignState
-}
-
-export type CampaignApplication = {
- __typename?: 'CampaignApplication'
- createdAt: Scalars['DateTime']['output']
- state: CampaignApplicationState
-}
-
-export enum CampaignApplicationState {
- Pending = 'pending',
- Rejected = 'rejected',
- Succeeded = 'succeeded',
-}
-
-export type CampaignArticleConnection = Connection & {
- __typename?: 'CampaignArticleConnection'
- edges: Array
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type CampaignArticleEdge = {
- __typename?: 'CampaignArticleEdge'
- announcement: Scalars['Boolean']['output']
- cursor: Scalars['String']['output']
- featured: Scalars['Boolean']['output']
- node: Article
-}
-
-export type CampaignArticleNotice = Notice & {
- __typename?: 'CampaignArticleNotice'
- /** List of notice actors. */
- actors?: Maybe>
- article: Article
- /** Time of this notice was created. */
- createdAt: Scalars['DateTime']['output']
- /** Unique ID of this notice. */
- id: Scalars['ID']['output']
- target: Campaign
- type: CampaignArticleNoticeType
- /** The value determines if the notice is unread or not. */
- unread: Scalars['Boolean']['output']
-}
-
-export enum CampaignArticleNoticeType {
- CampaignArticleFeatured = 'CampaignArticleFeatured',
-}
-
-export type CampaignArticlesFilter = {
- featured?: InputMaybe
- stage?: InputMaybe
-}
-
-export type CampaignArticlesInput = {
- after?: InputMaybe
- filter?: InputMaybe
- first?: InputMaybe
-}
-
-export type CampaignConnection = Connection & {
- __typename?: 'CampaignConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type CampaignEdge = {
- __typename?: 'CampaignEdge'
- cursor: Scalars['String']['output']
- node: Campaign
-}
-
-export type CampaignInput = {
- shortHash: Scalars['String']['input']
-}
-
-export type CampaignOss = {
- __typename?: 'CampaignOSS'
- boost: Scalars['Float']['output']
- exclusive: Scalars['Boolean']['output']
- managers: Array
-}
-
-export type CampaignParticipantConnection = Connection & {
- __typename?: 'CampaignParticipantConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type CampaignParticipantEdge = {
- __typename?: 'CampaignParticipantEdge'
- application?: Maybe
- cursor: Scalars['String']['output']
- node: User
-}
-
-export type CampaignParticipantsInput = {
- after?: InputMaybe
- first?: InputMaybe
- /** return all state participants */
- oss?: InputMaybe
-}
-
-export type CampaignStage = {
- __typename?: 'CampaignStage'
- description: Scalars['String']['output']
- id: Scalars['ID']['output']
- name: Scalars['String']['output']
- period?: Maybe
-}
-
-export type CampaignStageDescriptionArgs = {
- input?: InputMaybe
-}
-
-export type CampaignStageNameArgs = {
- input?: InputMaybe
-}
-
-export type CampaignStageInput = {
- description?: InputMaybe>
- name: Array
- period?: InputMaybe
-}
-
-export enum CampaignState {
- Active = 'active',
- Archived = 'archived',
- Finished = 'finished',
- Pending = 'pending',
-}
-
-export type CampaignsFilter = {
- excludes?: InputMaybe>
- sort?: InputMaybe
- state?: InputMaybe
-}
-
-export enum CampaignsFilterSort {
- WritingPeriod = 'writingPeriod',
-}
-
-export enum CampaignsFilterState {
- Active = 'active',
- Finished = 'finished',
-}
-
-export type CampaignsInput = {
- after?: InputMaybe
- filter?: InputMaybe
- first?: InputMaybe
- /** return pending and archived campaigns */
- oss?: InputMaybe
-}
-
-export enum Chain {
- Optimism = 'Optimism',
- Polygon = 'Polygon',
-}
-
-export type Channel = {
- id: Scalars['ID']['output']
- navbarTitle: Scalars['String']['output']
- shortHash: Scalars['String']['output']
-}
-
-export type ChannelNavbarTitleArgs = {
- input?: InputMaybe
-}
-
-export type ChannelArticleConnection = Connection & {
- __typename?: 'ChannelArticleConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type ChannelArticleEdge = {
- __typename?: 'ChannelArticleEdge'
- cursor: Scalars['String']['output']
- node: Article
- pinned: Scalars['Boolean']['output']
-}
-
-export type ChannelArticlesFilter = {
- datetimeRange?: InputMaybe
- searchKey?: InputMaybe
-}
-
-export type ChannelArticlesInput = {
- after?: InputMaybe
- filter?: InputMaybe
- first?: InputMaybe
- oss?: InputMaybe
- sort?: InputMaybe
-}
-
-export type ChannelInput = {
- shortHash: Scalars['String']['input']
-}
-
-export type ChannelsInput = {
- /** return all channels if true, only active channels by default */
- oss?: InputMaybe
-}
-
-export type Circle = Node & {
- __typename?: 'Circle'
- /** Analytics dashboard. */
- analytics: CircleAnalytics
- /**
- * Circle avatar's link.
- * @deprecated No longer in use
- */
- avatar?: Maybe
- /** Comments broadcasted by Circle owner. */
- broadcast: CommentConnection
- /**
- * Circle cover's link.
- * @deprecated No longer in use
- */
- cover?: Maybe
- /**
- * Created time.
- * @deprecated No longer in use
- */
- createdAt: Scalars['DateTime']['output']
- /** A short description of this Circle. */
- description?: Maybe
- /** Comments made by Circle member. */
- discussion: CommentConnection
- /** Discussion (include replies) count of this circle. */
- discussionCount: Scalars['Int']['output']
- /** Discussion (exclude replies) count of this circle. */
- discussionThreadCount: Scalars['Int']['output']
- /**
- * Human readable name of this Circle.
- * @deprecated No longer in use
- */
- displayName: Scalars['String']['output']
- /**
- * List of Circle follower.
- * @deprecated No longer in use
- */
- followers: UserConnection
- /** Unique ID. */
- id: Scalars['ID']['output']
- /** Invitation used by current viewer. */
- invitedBy?: Maybe
- /** Invitations belonged to this Circle. */
- invites: Invites
- /**
- * This value determines if current viewer is following Circle or not.
- * @deprecated No longer in use
- */
- isFollower: Scalars['Boolean']['output']
- /**
- * This value determines if current viewer is Member or not.
- * @deprecated No longer in use
- */
- isMember: Scalars['Boolean']['output']
- /**
- * List of Circle member.
- * @deprecated No longer in use
- */
- members: MemberConnection
- /**
- * Slugified name of this Circle.
- * @deprecated No longer in use
- */
- name: Scalars['String']['output']
- /** Circle owner. */
- owner: User
- /** Pinned comments broadcasted by Circle owner. */
- pinnedBroadcast?: Maybe>
- /** Prices offered by this Circle. */
- prices?: Maybe>
- /**
- * State of this Circle.
- * @deprecated No longer in use
- */
- state: CircleState
- /**
- * Updated time.
- * @deprecated No longer in use
- */
- updatedAt: Scalars['DateTime']['output']
- /**
- * List of works belong to this Circle.
- * @deprecated No longer in use
- */
- works: ArticleConnection
-}
-
-export type CircleBroadcastArgs = {
- input: CommentsInput
-}
-
-export type CircleDiscussionArgs = {
- input: CommentsInput
-}
-
-export type CircleFollowersArgs = {
- input: ConnectionArgs
-}
-
-export type CircleMembersArgs = {
- input: ConnectionArgs
-}
-
-export type CircleWorksArgs = {
- input: ConnectionArgs
-}
-
-export type CircleAnalytics = {
- __typename?: 'CircleAnalytics'
- content: CircleContentAnalytics
- follower: CircleFollowerAnalytics
- income: CircleIncomeAnalytics
- subscriber: CircleSubscriberAnalytics
-}
-
-export type CircleConnection = Connection & {
- __typename?: 'CircleConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type CircleContentAnalytics = {
- __typename?: 'CircleContentAnalytics'
- paywall?: Maybe>
- public?: Maybe>
-}
-
-export type CircleContentAnalyticsDatum = {
- __typename?: 'CircleContentAnalyticsDatum'
- node: Article
- readCount: Scalars['Int']['output']
-}
-
-export type CircleEdge = {
- __typename?: 'CircleEdge'
- cursor: Scalars['String']['output']
- node: Circle
-}
-
-export type CircleFollowerAnalytics = {
- __typename?: 'CircleFollowerAnalytics'
- /** current follower count */
- current: Scalars['Int']['output']
- /** the percentage of follower count in reader count of circle articles */
- followerPercentage: Scalars['Float']['output']
- /** subscriber count history of last 4 months */
- history: Array
-}
-
-export type CircleIncomeAnalytics = {
- __typename?: 'CircleIncomeAnalytics'
- /** income history of last 4 months */
- history: Array
- /** income of next month */
- nextMonth: Scalars['Float']['output']
- /** income of this month */
- thisMonth: Scalars['Float']['output']
- /** total income of all time */
- total: Scalars['Float']['output']
-}
-
-export type CircleInput = {
- /** Slugified name of a Circle. */
- name: Scalars['String']['input']
-}
-
-export type CircleNotice = Notice & {
- __typename?: 'CircleNotice'
- /** List of notice actors. */
- actors?: Maybe>
- /** Optional discussion/broadcast comments for bundled notices */
- comments?: Maybe>
- /** Time of this notice was created. */
- createdAt: Scalars['DateTime']['output']
- /** Unique ID of this notice. */
- id: Scalars['ID']['output']
- /** Optional mention comments for bundled notices */
- mentions?: Maybe>
- /** Optional discussion/broadcast replies for bundled notices */
- replies?: Maybe>
- target: Circle
- type: CircleNoticeType
- /** The value determines if the notice is unread or not. */
- unread: Scalars['Boolean']['output']
-}
-
-export enum CircleNoticeType {
- CircleInvitation = 'CircleInvitation',
- CircleNewBroadcastComments = 'CircleNewBroadcastComments',
- CircleNewDiscussionComments = 'CircleNewDiscussionComments',
- CircleNewFollower = 'CircleNewFollower',
- CircleNewSubscriber = 'CircleNewSubscriber',
- CircleNewUnsubscriber = 'CircleNewUnsubscriber',
-}
-
-export type CircleRecommendationActivity = {
- __typename?: 'CircleRecommendationActivity'
- /** Recommended circles */
- nodes?: Maybe>
- /** The source type of recommendation */
- source?: Maybe
-}
-
-export enum CircleRecommendationActivitySource {
- UserSubscription = 'UserSubscription',
-}
-
-export enum CircleState {
- Active = 'active',
- Archived = 'archived',
-}
-
-export type CircleSubscriberAnalytics = {
- __typename?: 'CircleSubscriberAnalytics'
- /** current invitee count */
- currentInvitee: Scalars['Int']['output']
- /** current subscriber count */
- currentSubscriber: Scalars['Int']['output']
- /** invitee count history of last 4 months */
- inviteeHistory: Array
- /** subscriber count history of last 4 months */
- subscriberHistory: Array
-}
-
-export type ClaimLogbooksInput = {
- ethAddress: Scalars['String']['input']
- /** nonce from generateSigningMessage */
- nonce: Scalars['String']['input']
- /** sign'ed by wallet */
- signature: Scalars['String']['input']
- /** the message being sign'ed, including nonce */
- signedMessage: Scalars['String']['input']
-}
-
-export type ClaimLogbooksResult = {
- __typename?: 'ClaimLogbooksResult'
- ids?: Maybe>
- txHash: Scalars['String']['output']
-}
-
-export type ClassifyArticlesChannelsInput = {
- ids: Array
-}
-
-export type ClearCommunityWatchOriginalContentInput = {
- note?: InputMaybe
- uuid: Scalars['ID']['input']
-}
-
-export type ClearReadHistoryInput = {
- id?: InputMaybe
-}
-
-export type ClientPreference = {
- __typename?: 'ClientPreference'
- /** Whether cicle banner is shown */
- circleBanner: Scalars['Boolean']['output']
- id: Scalars['ID']['output']
- /** Local language setting */
- language?: Maybe
- /** Login or sign up wall in article detail page */
- wall: Scalars['Boolean']['output']
-}
-
-export type Collection = Node &
- PinnableWork & {
- __typename?: 'Collection'
- articles: ArticleConnection
- author: User
- /** Check if the collection contains the article */
- contains: Scalars['Boolean']['output']
- cover?: Maybe
- description?: Maybe
- id: Scalars['ID']['output']
- likeCount: Scalars['Int']['output']
- /** whether current user has liked it */
- liked: Scalars['Boolean']['output']
- pinned: Scalars['Boolean']['output']
- title: Scalars['String']['output']
- updatedAt: Scalars['DateTime']['output']
- }
-
-export type CollectionArticlesArgs = {
- input: CollectionArticlesInput
-}
-
-export type CollectionContainsArgs = {
- input: NodeInput
-}
-
-export type CollectionArticlesInput = {
- after?: InputMaybe
- before?: InputMaybe
- first?: InputMaybe
- includeAfter?: Scalars['Boolean']['input']
- includeBefore?: Scalars['Boolean']['input']
- last?: InputMaybe
- reversed?: Scalars['Boolean']['input']
-}
-
-export type CollectionConnection = Connection & {
- __typename?: 'CollectionConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type CollectionEdge = {
- __typename?: 'CollectionEdge'
- cursor: Scalars['String']['output']
- node: Collection
-}
-
-export type CollectionNotice = Notice & {
- __typename?: 'CollectionNotice'
- /** List of notice actors. */
- actors?: Maybe>
- /** Time of this notice was created. */
- createdAt: Scalars['DateTime']['output']
- /** Unique ID of this notice. */
- id: Scalars['ID']['output']
- target: Collection
- /** The value determines if the notice is unread or not. */
- unread: Scalars['Boolean']['output']
-}
-
-export enum Color {
- Brown = 'brown',
- Gray = 'gray',
- Green = 'green',
- Orange = 'orange',
- Pink = 'pink',
- Purple = 'purple',
- Red = 'red',
- Yellow = 'yellow',
-}
-
-/** This type contains content, author, descendant comments and related data of a comment. */
-export type Comment = Node & {
- __typename?: 'Comment'
- /** Author of this comment. */
- author: User
- /** Descendant comments of this comment. */
- comments: CommentConnection
- /** Community Watch audit action when this comment was removed by Community Watch. */
- communityWatchAction?: Maybe
- /** Content of this comment. */
- content?: Maybe
- /** Time of this comment was created. */
- createdAt: Scalars['DateTime']['output']
- /**
- * The counting number of downvotes.
- * @deprecated No longer in use in querying
- */
- downvotes: Scalars['Int']['output']
- /** This value determines this comment is from article donator or not. */
- fromDonator: Scalars['Boolean']['output']
- /** Unique ID of this comment. */
- id: Scalars['ID']['output']
- /** The value determines current user's vote. */
- myVote?: Maybe
- /** Current comment belongs to which Node. */
- node: Node
- /** Parent comment of this comment. */
- parentComment?: Maybe
- /** This value determines this comment is pinned or not. */
- pinned: Scalars['Boolean']['output']
- remark?: Maybe
- /** A Comment that this comment replied to. */
- replyTo?: Maybe
- spamStatus: SpamStatus
- /** State of this comment. */
- state: CommentState
- type: CommentType
- /** The counting number of upvotes. */
- upvotes: Scalars['Int']['output']
-}
-
-/** This type contains content, author, descendant comments and related data of a comment. */
-export type CommentCommentsArgs = {
- input: CommentCommentsInput
-}
-
-export type CommentCommentNotice = Notice & {
- __typename?: 'CommentCommentNotice'
- /** List of notice actors. */
- actors?: Maybe>
- comment: Comment
- /** Time of this notice was created. */
- createdAt: Scalars['DateTime']['output']
- /** Unique ID of this notice. */
- id: Scalars['ID']['output']
- target: Comment
- type: CommentCommentNoticeType
- /** The value determines if the notice is unread or not. */
- unread: Scalars['Boolean']['output']
-}
-
-export enum CommentCommentNoticeType {
- CommentNewReply = 'CommentNewReply',
-}
-
-export type CommentCommentsInput = {
- after?: InputMaybe
- author?: InputMaybe
- first?: InputMaybe
- sort?: InputMaybe
-}
-
-export type CommentConnection = Connection & {
- __typename?: 'CommentConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type CommentEdge = {
- __typename?: 'CommentEdge'
- cursor: Scalars['String']['output']
- node: Comment
-}
-
-export type CommentInput = {
- articleId?: InputMaybe
- circleId?: InputMaybe
- content: Scalars['String']['input']
- mentions?: InputMaybe>
- momentId?: InputMaybe
- parentId?: InputMaybe
- replyTo?: InputMaybe
- type: CommentType
-}
-
-export type CommentNotice = Notice & {
- __typename?: 'CommentNotice'
- /** List of notice actors. */
- actors?: Maybe>
- /** Time of this notice was created. */
- createdAt: Scalars['DateTime']['output']
- /** Unique ID of this notice. */
- id: Scalars['ID']['output']
- target: Comment
- type: CommentNoticeType
- /** The value determines if the notice is unread or not. */
- unread: Scalars['Boolean']['output']
-}
-
-export enum CommentNoticeType {
- ArticleNewComment = 'ArticleNewComment',
- CircleNewBroadcast = 'CircleNewBroadcast',
- CommentLiked = 'CommentLiked',
- CommentMentionedYou = 'CommentMentionedYou',
- CommentPinned = 'CommentPinned',
- MomentNewComment = 'MomentNewComment',
- SubscribedArticleNewComment = 'SubscribedArticleNewComment',
-}
-
-/** Enums for sorting comments by time. */
-export enum CommentSort {
- Newest = 'newest',
- Oldest = 'oldest',
-}
-
-/** Enums for comment state. */
-export enum CommentState {
- Active = 'active',
- Archived = 'archived',
- Banned = 'banned',
- Collapsed = 'collapsed',
-}
-
-export enum CommentType {
- Article = 'article',
- CircleBroadcast = 'circleBroadcast',
- CircleDiscussion = 'circleDiscussion',
- Moment = 'moment',
-}
-
-export type CommentsFilter = {
- author?: InputMaybe
- parentComment?: InputMaybe
- state?: InputMaybe
-}
-
-export type CommentsInput = {
- after?: InputMaybe
- before?: InputMaybe
- filter?: InputMaybe
- first?: InputMaybe
- includeAfter?: InputMaybe
- includeBefore?: InputMaybe
- sort?: InputMaybe
-}
-
-export type CommunityWatchAction = {
- __typename?: 'CommunityWatchAction'
- actionState: CommunityWatchActionState
- actorDisplayName: Scalars['String']['output']
- appealState: CommunityWatchAppealState
- commentId: Scalars['ID']['output']
- contentCleared: Scalars['Boolean']['output']
- createdAt: Scalars['DateTime']['output']
- originalContent?: Maybe
- reason: CommunityWatchRemoveCommentReason
- reviewState: CommunityWatchReviewState
- sourceId: Scalars['ID']['output']
- sourceTitle: Scalars['String']['output']
- sourceType: CommunityWatchActionSourceType
- /** Public identifier used by the Community Watch transparency page. */
- uuid: Scalars['ID']['output']
-}
-
-export type CommunityWatchActionConnection = Connection & {
- __typename?: 'CommunityWatchActionConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type CommunityWatchActionEdge = {
- __typename?: 'CommunityWatchActionEdge'
- cursor: Scalars['String']['output']
- node: CommunityWatchAction
-}
-
-export type CommunityWatchActionInput = {
- uuid: Scalars['ID']['input']
-}
-
-export enum CommunityWatchActionSourceType {
- Article = 'article',
- Moment = 'moment',
-}
-
-export enum CommunityWatchActionState {
- Active = 'active',
- Restored = 'restored',
- Voided = 'voided',
-}
-
-export type CommunityWatchActionsInput = {
- actionState?: InputMaybe
- after?: InputMaybe
- appealState?: InputMaybe
- first?: InputMaybe
- reason?: InputMaybe
- reviewState?: InputMaybe
-}
-
-export enum CommunityWatchAppealState {
- None = 'none',
- Received = 'received',
- Resolved = 'resolved',
-}
-
-export type CommunityWatchRemoveCommentInput = {
- id: Scalars['ID']['input']
- reason: CommunityWatchRemoveCommentReason
-}
-
-export enum CommunityWatchRemoveCommentReason {
- PornAd = 'porn_ad',
- SpamAd = 'spam_ad',
-}
-
-export enum CommunityWatchReviewState {
- Pending = 'pending',
- ReasonAdjusted = 'reason_adjusted',
- Reversed = 'reversed',
- Upheld = 'upheld',
-}
-
-export type ConfirmVerificationCodeInput = {
- code: Scalars['String']['input']
- email: Scalars['email_String_NotNull_format_email']['input']
- type: VerificationCodeType
-}
-
-export type ConnectStripeAccountInput = {
- country: StripeAccountCountry
-}
-
-export type ConnectStripeAccountResult = {
- __typename?: 'ConnectStripeAccountResult'
- redirectUrl: Scalars['String']['output']
-}
-
-export type Connection = {
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type ConnectionArgs = {
- after?: InputMaybe
- filter?: InputMaybe
- first?: InputMaybe
- oss?: InputMaybe
-}
-
-export type CryptoWallet = {
- __typename?: 'CryptoWallet'
- address: Scalars['String']['output']
- /** does this address own any Travelogger NFTs? this value is cached at most 1day, and refreshed at next `nfts` query */
- hasNFTs: Scalars['Boolean']['output']
- id: Scalars['ID']['output']
- /** NFT assets owned by this wallet address */
- nfts?: Maybe>
-}
-
-export enum CryptoWalletSignaturePurpose {
- Airdrop = 'airdrop',
- Connect = 'connect',
- Login = 'login',
- Signup = 'signup',
-}
-
-export type CurationChannel = Channel &
- Node & {
- __typename?: 'CurationChannel'
- /** both activePeriod and state determine if the channel is active */
- activePeriod: DatetimeRange
- articles: ChannelArticleConnection
- color: Color
- id: Scalars['ID']['output']
- name: Scalars['String']['output']
- navbarTitle: Scalars['String']['output']
- note?: Maybe
- pinAmount: Scalars['Int']['output']
- shortHash: Scalars['String']['output']
- showRecommendation: Scalars['Boolean']['output']
- state: CurationChannelState
- }
-
-export type CurationChannelArticlesArgs = {
- input: ChannelArticlesInput
-}
-
-export type CurationChannelNameArgs = {
- input?: InputMaybe
-}
-
-export type CurationChannelNavbarTitleArgs = {
- input?: InputMaybe
-}
-
-export type CurationChannelNoteArgs = {
- input?: InputMaybe
-}
-
-export enum CurationChannelState {
- Archived = 'archived',
- Editing = 'editing',
- Published = 'published',
-}
-
-export type DatetimeRange = {
- __typename?: 'DatetimeRange'
- end?: Maybe
- start: Scalars['DateTime']['output']
-}
-
-export type DatetimeRangeInput = {
- end?: InputMaybe
- start: Scalars['DateTime']['input']
-}
-
-export type DeleteAnnouncementsInput = {
- ids?: InputMaybe>
-}
-
-export type DeleteCollectionArticlesInput = {
- articles: Array
- collection: Scalars['ID']['input']
-}
-
-export type DeleteCollectionsInput = {
- ids: Array
-}
-
-export type DeleteCommentInput = {
- id: Scalars['ID']['input']
-}
-
-export type DeleteCurationChannelArticlesInput = {
- articles: Array
- channel: Scalars['ID']['input']
-}
-
-export type DeleteDraftInput = {
- id: Scalars['ID']['input']
-}
-
-export type DeleteMomentInput = {
- id: Scalars['ID']['input']
-}
-
-export type DeleteTagsInput = {
- ids: Array
-}
-
-export type DirectImageUploadInput = {
- draft?: InputMaybe
- entityId?: InputMaybe
- entityType: EntityType
- mime?: InputMaybe
- type: AssetType
- url?: InputMaybe
-}
-
-export type Donator = CryptoWallet | User
-
-/** This type contains content, collections, assets and related data of a draft. */
-export type Draft = Node & {
- __typename?: 'Draft'
- /** Access related fields on circle */
- access: DraftAccess
- /** Published article */
- article?: Maybe
- /** List of assets are belonged to this draft. */
- assets: Array
- /** Associated campaigns */
- campaigns: Array
- /** Whether readers can comment */
- canComment: Scalars['Boolean']['output']
- /** @deprecated Use connections instead */
- collection: ArticleConnection
- /** Collections of this draft. */
- collections: CollectionConnection
- /** Connection articles of this draft. */
- connections: ArticleConnection
- /** Content (HTML) of this draft. */
- content?: Maybe
- /** Draft's cover link. */
- cover?: Maybe
- /** Time of this draft was created. */
- createdAt: Scalars['DateTime']['output']
- /** Unique ID of this draft. */
- id: Scalars['ID']['output']
- /** Whether the first line of paragraph should be indented */
- indentFirstLine: Scalars['Boolean']['output']
- /** Whether publish to ISCN */
- iscnPublish?: Maybe
- /** License Type */
- license: ArticleLicenseType
- /** Media hash, composed of cid encoding, of this draft. */
- mediaHash?: Maybe
- /** Scheduled publish date of the article. */
- publishAt?: Maybe
- /** State of draft during publihsing. */
- publishState: PublishState
- /** Creator message after support */
- replyToDonator?: Maybe
- /** Creator message asking for support */
- requestForDonation?: Maybe
- /** Whether content is marked as sensitive by author */
- sensitiveByAuthor: Scalars['Boolean']['output']
- /** Slugified draft title. */
- slug: Scalars['String']['output']
- /** Summary of this draft. */
- summary?: Maybe
- /** This value determines if the summary is customized or not. */
- summaryCustomized: Scalars['Boolean']['output']
- /** Tags are attached to this draft. */
- tags?: Maybe>
- /** Draft title. */
- title?: Maybe
- /** Last time of this draft was upadted. */
- updatedAt: Scalars['DateTime']['output']
- /** The counting number of words in this draft. */
- wordCount: Scalars['Int']['output']
-}
-
-/** This type contains content, collections, assets and related data of a draft. */
-export type DraftCollectionArgs = {
- input: ConnectionArgs
-}
-
-/** This type contains content, collections, assets and related data of a draft. */
-export type DraftCollectionsArgs = {
- input: ConnectionArgs
-}
-
-/** This type contains content, collections, assets and related data of a draft. */
-export type DraftConnectionsArgs = {
- input: ConnectionArgs
-}
-
-export type DraftAccess = {
- __typename?: 'DraftAccess'
- circle?: Maybe
- type: ArticleAccessType
-}
-
-export type DraftConnection = Connection & {
- __typename?: 'DraftConnection'
- edges?: Maybe>
- pageInfo: PageInfo
- totalCount: Scalars['Int']['output']
-}
-
-export type DraftEdge = {
- __typename?: 'DraftEdge'
- cursor: Scalars['String']['output']
- node: Draft
-}
-
-export type EditArticleInput = {
- accessType?: InputMaybe
- /** which campaigns to attach */
- campaigns?: InputMaybe>
- /** whether readers can comment */
- canComment?: InputMaybe
- circle?: InputMaybe
- /** Deprecated, use connections instead */
- collection?: InputMaybe>
- collections?: InputMaybe>
- connections?: InputMaybe>
- content?: InputMaybe
- cover?: InputMaybe
- /** revision description */
- description?: InputMaybe
- id: Scalars['ID']['input']
- indentFirstLine?: InputMaybe
- /** whether publish to ISCN */
- iscnPublish?: InputMaybe
- license?: InputMaybe
- pinned?: InputMaybe
- replyToDonator?: InputMaybe<
- Scalars['replyToDonator_String_maxLength_140']['input']
- >
- requestForDonation?: InputMaybe<
- Scalars['requestForDonation_String_maxLength_140']['input']
- >
- sensitive?: InputMaybe