Merge branch 'development' of https://github.com/ecency/ecency-mobile into sa/improve-hive-uri-support

This commit is contained in:
Sadaqat Ali 2023-09-27 11:33:42 +05:00
commit 5e45fdeb69
97 changed files with 715 additions and 371 deletions

View File

@ -77,7 +77,7 @@ const CommentView = ({
const _handleOnReplyPress = () => {
if (isLoggedIn) {
dispatch(showReplyModal({mode:'comment', parentPost:comment}));
dispatch(showReplyModal({ mode: 'comment', parentPost: comment }));
} else {
console.log('Not LoggedIn');
}
@ -97,11 +97,17 @@ const CommentView = ({
);
const _renderComment = () => {
const _hideContent = isMuted || comment.author_reputation < 25 || comment.net_rshares < 0;
return (
<View style={[{ marginLeft: 2, marginTop: -6 }]}>
<CommentBody
body={comment.body}
metadata={comment.json_metadata}
key={`key-${comment.permlink}`}
hideContent={_hideContent}
commentDepth={_depth}
reputation={comment.author_reputation}
handleOnContentPress={_handleOnContentPress}
handleOnUserPress={handleOnUserPress}
handleOnLongPress={() => handleOnLongPress(comment)}
@ -109,9 +115,6 @@ const CommentView = ({
handleImagePress={handleImagePress}
handleVideoPress={handleVideoPress}
handleYoutubePress={handleYoutubePress}
body={comment.body}
key={`key-${comment.permlink}`}
isMuted={isMuted}
/>
<Fragment>

View File

@ -52,6 +52,7 @@ const CommentsContainer = ({
incrementRepliesCount,
handleOnReplyPress,
handleOnCommentsLoaded,
postType
}) => {
const navigation = useNavigation();
const postsCachePrimer = postQueries.usePostsCachePrimer();
@ -318,6 +319,7 @@ const CommentsContainer = ({
fetchedAt={fetchedAt}
postContentView={postContentView}
isLoading={isLoading}
postType={postType}
/>
);
};

View File

@ -41,6 +41,7 @@ const CommentsView = ({
incrementRepliesCount,
postContentView,
isLoading,
postType
}) => {
const [selectedComment, setSelectedComment] = useState(null);
const intl = useIntl();
@ -172,7 +173,7 @@ const CommentsView = ({
contentContainerStyle={{ padding: 0 }}
data={comments}
renderItem={_renderItem}
keyExtractor={(item) => get(item, 'permlink')}
keyExtractor={(item) => item.author + item.permlink}
ListEmptyComponent={_renderEmptyContent()}
ListHeaderComponent={postContentView}
overScrollMode="never"
@ -192,7 +193,7 @@ const CommentsView = ({
/>
)}
<UpvotePopover ref={upvotePopoverRef} />
<PostHtmlInteractionHandler ref={postInteractionRef} />
<PostHtmlInteractionHandler ref={postInteractionRef} postType={postType} />
</Fragment>
);
};

View File

@ -22,8 +22,26 @@ import getWindowDimensions from '../../../../utils/getWindowDimensions';
const WIDTH = getWindowDimensions().width;
interface CommentBodyProps {
body: string;
metadata?: any;
commentDepth: number;
hideContent: boolean;
handleOnContentPress: () => void;
handleOnUserPress: () => void;
handleOnPostPress: () => void;
handleOnLongPress: () => void;
handleVideoPress: () => void;
handleYoutubePress: () => void;
handleImagePress: () => void;
handleLinkPress: () => void;
}
const CommentBody = ({
body,
metadata,
commentDepth,
hideContent,
handleOnContentPress,
handleOnUserPress,
handleOnPostPress,
@ -32,15 +50,12 @@ const CommentBody = ({
handleYoutubePress,
handleImagePress,
handleLinkPress,
commentDepth,
reputation = 25,
isMuted,
}) => {
}: CommentBodyProps) => {
const _contentWidth = WIDTH - (40 + 28 + (commentDepth > 2 ? 44 : 0));
const dispatch = useAppDispatch();
const [revealComment, setRevealComment] = useState(reputation > 0 && !isMuted);
const [revealComment, setRevealComment] = useState(!hideContent);
const intl = useIntl();
@ -119,6 +134,7 @@ const CommentBody = ({
<PostHtmlRenderer
contentWidth={_contentWidth}
body={body}
metadata={metadata}
isComment={true}
setSelectedImage={handleImagePress}
setSelectedLink={handleLinkPress}

View File

@ -13,7 +13,7 @@ import { VideoPlayer } from '..';
interface PostHtmlRendererProps {
contentWidth: number;
body: string;
metadata: string;
metadata: any;
isComment?: boolean;
onLoaded?: () => void;
setSelectedImage: (imgUrl: string, postImageUrls: string[]) => void;

View File

@ -25,8 +25,15 @@ import { useDispatch } from 'react-redux';
import { useNavigation } from '@react-navigation/native';
import { IconButton } from '../buttons';
import styles from './postHtmlRendererStyles'
import { PostTypes } from '../../constants/postTypes';
export const PostHtmlInteractionHandler = forwardRef(({ }, ref) => {
interface PostHtmlInteractionHandlerProps {
postType?:PostTypes
}
export const PostHtmlInteractionHandler = forwardRef(({
postType
}:PostHtmlInteractionHandlerProps, ref) => {
const navigation = useNavigation();
const dispatch = useDispatch();
@ -51,7 +58,12 @@ export const PostHtmlInteractionHandler = forwardRef(({ }, ref) => {
handleImagePress: (url: string, postImgUrls: string[]) => {
setPostImages(postImgUrls);
setSelectedImage(url);
if(postType === PostTypes.WAVE){
setIsImageModalOpen(true);
} else {
actionImage.current?.show();
}
},
handleLinkPress: (url: string) => {
setSelectedLink(url);

View File

@ -1,7 +1,7 @@
import { useDispatch } from "react-redux";
import { useAppSelector } from "../../hooks";
import { postComment } from "../../providers/hive/dhive";
import { generateReplyPermlink, makeJsonMetadataReply } from "../../utils/editor";
import { extractMetadata, generateUniquePermlink, makeJsonMetadata } from "../../utils/editor";
import { Alert } from "react-native";
import { updateCommentCache } from "../../redux/actions/cacheActions";
import { toastNotification } from "../../redux/actions/uiAction";
@ -10,6 +10,7 @@ import { useState } from "react";
import { useUserActivityMutation, wavesQueries } from "../../providers/queries";
import { PointActivityIds } from "../../providers/ecency/ecency.types";
import { usePublishWaveMutation } from "../../providers/queries/postQueries/wavesQueries";
import { PostTypes } from "../../constants/postTypes";
export const usePostSubmitter = () => {
@ -27,9 +28,9 @@ export const usePostSubmitter = () => {
// handle submit reply
const _submitReply = async (commentBody: string, parentPost: any) => {
const _submitReply = async (commentBody: string, parentPost: any, postType: PostTypes = PostTypes.COMMENT) => {
if (!commentBody) {
return false ;
return false;
}
if (isSending) {
return false;
@ -38,7 +39,11 @@ export const usePostSubmitter = () => {
if (currentAccount) {
setIsSending(true);
const permlink = generateReplyPermlink(parentPost.author);
const _prefix = postType === PostTypes.WAVE
? postType
: `re-${parentPost.author.replace(/\./g, '')}`
const permlink = generateUniquePermlink(_prefix);
const author = currentAccount.name;
const parentAuthor = parentPost.author;
const parentPermlink = parentPost.permlink;
@ -46,6 +51,14 @@ export const usePostSubmitter = () => {
const category = parentPost.category || '';
const url = `/${category}/@${parentAuthor}/${parentPermlink}#@${author}/${permlink}`;
//adding jsonmeta with image ratios here....
const meta = await extractMetadata({
body: commentBody,
fetchRatios: true,
postType
})
const jsonMetadata = makeJsonMetadata(meta, parentTags || ['ecency'])
console.log(
currentAccount,
pinCode,
@ -53,7 +66,7 @@ export const usePostSubmitter = () => {
parentPermlink,
permlink,
commentBody,
parentTags,
jsonMetadata
);
@ -65,7 +78,8 @@ export const usePostSubmitter = () => {
parentPermlink,
permlink,
commentBody,
parentTags,
[],
jsonMetadata
)
userActivityMutation.mutate({
@ -90,7 +104,7 @@ export const usePostSubmitter = () => {
parent_author: parentAuthor,
parent_permlink: parentPermlink,
markdownBody: commentBody,
json_metadata: makeJsonMetadataReply(parentTags || ['ecency'])
json_metadata: jsonMetadata
}
dispatch(
@ -129,15 +143,15 @@ export const usePostSubmitter = () => {
//feteced lates wafves container and post wave to that container
const _submitWave = async (body:string) => {
const _submitWave = async (body: string) => {
try {
const _wavesHost = 'ecency.waves' //TODO: make waves host selection dynamic
const latestWavesPost = await wavesQueries.fetchLatestWavesContainer(_wavesHost);
const _cacheCommentData = await _submitReply(body, latestWavesPost)
const _cacheCommentData = await _submitReply(body, latestWavesPost, PostTypes.WAVE)
if(_cacheCommentData){
if (_cacheCommentData) {
pusblishWaveMutation.mutate(_cacheCommentData)
}

View File

@ -1,4 +1,5 @@
import React from 'react';
import React, { useEffect } from 'react';
import { Alert } from 'react-native'
import { useDispatch, useSelector } from 'react-redux';
// Actions
@ -7,9 +8,16 @@ import { setInitPosts, setFeedPosts } from '../../../redux/actions/postsAction';
// Component
import SideMenuView from '../view/sideMenuView';
import { useDrawerStatus } from '@react-navigation/drawer';
import { updateCurrentAccount } from '../../../redux/actions/accountAction';
import { getUser } from '../../../providers/hive/dhive';
import bugsnapInstance from '../../../config/bugsnag';
const SideMenuContainer = ({ navigation }) => {
const dispatch = useDispatch();
const drawerStatus = useDrawerStatus();
const isLoggedIn = useSelector((state) => state.application.isLoggedIn);
const currentAccount = useSelector((state) => state.account.currentAccount);
@ -17,6 +25,34 @@ const SideMenuContainer = ({ navigation }) => {
(state) => state.ui.isVisibleAccountsBottomSheet,
);
useEffect(()=>{
if(drawerStatus === 'open'){
//update profile on drawer open
_updateUserData();
}
}, [drawerStatus])
//fetches and update user data
const _updateUserData = async () => {
try{
if(currentAccount?.username){
let accountData = await getUser(currentAccount.username);
if(accountData){
dispatch(updateCurrentAccount({...currentAccount, ...accountData}))
}
}
} catch(err){
console.warn("failed to update user data")
bugsnapInstance.notify(err);
}
}
const _navigateToRoute = (route = null) => {
if (route) {
navigation.navigate(route);

View File

@ -30,7 +30,7 @@ import { PostTypes } from '../../../constants/postTypes';
// Utils
import { getEstimatedAmount } from '../../../utils/vote';
import { calculateEstimatedRShares, getEstimatedAmount } from '../../../utils/vote';
// Components
import { Icon } from '../../icon';
@ -309,6 +309,9 @@ const UpvotePopover = forwardRef(({ }: Props, ref) => {
incrementStep = 1;
}
const percent = Math.floor(sliderValue * 10000 * (isDownvote ? -1 : 1));
const rshares = calculateEstimatedRShares(currentAccount, percent) * (isDownvote ? -1 : 1);
// update redux
const postPath = `${author || ''}/${permlink || ''}`;
const curTime = new Date().getTime();
@ -316,7 +319,8 @@ const UpvotePopover = forwardRef(({ }: Props, ref) => {
votedAt: curTime,
amount: amountNum,
isDownvote,
sliderValue,
rshares,
percent: Math.round(sliderValue * 100) * 100,
incrementStep,
voter: currentAccount.username,
expiresAt: curTime + 30000,

View File

@ -1,6 +1,6 @@
import React from 'react';
import { SafeAreaView, FlatList, Text } from 'react-native';
import { useIntl } from 'react-intl';
import { SafeAreaView, FlatList } from 'react-native';
// Utils
import { useNavigation } from '@react-navigation/native';
@ -17,16 +17,6 @@ import styles from './votersDisplayStyles';
const VotersDisplayView = ({ votes, createdAt = '2010-01-01T00:00:00' }) => {
const navigation = useNavigation();
const intl = useIntl();
/* getActiveVotes(get(content, 'author'), get(content, 'permlink'))
.then((result) => {
result.sort((a, b) => b.rshares - a.rshares);
const _votes = parseActiveVotes({ ...content, active_votes: result });
setActiveVotes(_votes);
})
.catch(() => {}); */
const _handleOnUserPress = (username) => {
navigation.navigate({
@ -40,7 +30,7 @@ const VotersDisplayView = ({ votes, createdAt = '2010-01-01T00:00:00' }) => {
const _renderItem = ({ item, index }) => {
const value = `$ ${item.reward}`;
const percent = `${item.percent}%`;
const percent = `${item.percent100}%`;
// snippet to avoid rendering time form long past
const minTimestamp = new Date(createdAt).getTime();

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Gaji kurasi",
"author_reward": "Upah Keupoe",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Kirèm",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Komentar",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "مكافأة التصويت",
"author_reward": "مكافأة المؤلف",
"community_reward": "مكافآت المجتمع",
"comment_benefactor_reward": "مكافأة المستفيد",
"claim_reward_balance": "الحصول على المكافأة ",
"points_activity": "الأنشطة والمستجدّات",
"transfer": "تحويل",
"power_up": "إلى استحقاق",
"transfer_from_savings": "من المدخرات",
@ -665,7 +667,7 @@
"in": "في",
"reveal_muted": "مكتوم\nانقر لإظهار المحتوى",
"posted_by": "تم نشره بواسطة {username} عبر {appname} ",
"ecency_waves": "Ecency Waves"
"ecency_waves": "موجات Ecency"
},
"drafts": {
"title": "المسودات",
@ -912,7 +914,7 @@
},
"comments": {
"title": "التعليقات",
"reveal_comment": "كشف التعليق",
"reveal_comment": "Reveal Content",
"read_more": "المزيد من التعليقات",
"more_replies": "ردود",
"no_comments": "كن اول من يرد..."
@ -1009,11 +1011,11 @@
},
"quick_reply": {
"placeholder": "إضافة تعليق...",
"placeholder_wave": "What's happening?",
"summary_wave": "Will be published in: {host}",
"placeholder_wave": "ماذا يحدث؟",
"summary_wave": "سيتم نشره في: {host}",
"comment": "تعليق",
"reply": "رد",
"publish": "PUBLISH",
"publish": "نشر",
"close": "إغلاق"
},
"walkthrough": {
@ -1035,11 +1037,11 @@
"detected_url": "الرابط الذي تم اكتشافه",
"unsupported_alert_title": "رابط غير مدعوم!",
"unsupported_alert_desc": "يرجى مسح رابط ecency صالح.",
"confirmTransaction": "Confirm transaction",
"approve": "Approve",
"cancel": "Cancel",
"multi_array_ops_alert": "Multiple operations array detected!",
"multi_array_ops_aler_desct": "Ecency does not support signing multiple operations, yet"
"confirmTransaction": "تأكيد المعاملة",
"approve": "إعتماد",
"cancel": "إلغاء",
"multi_array_ops_alert": "تم اكتشاف عمليات متعددة!",
"multi_array_ops_aler_desct": "Ecency لا تدعم عمليات متعددة، حتى الآن"
},
"history": {
"edit": "تعديل التاريخ",

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "লিখকৰ পাৰিতোষিক",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "পাৰিতোষিক গ্ৰহণ ",
"points_activity": "Activity",
"transfer": "বদলি কৰক",
"power_up": "ভেষ্‌টিঙৰ বাবে",
"transfer_from_savings": "জমাপুণ্জীৰ পৰা",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Kurator Mükafatı",
"author_reward": "Müəllif Mükafatı",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Mükafatı Götür ",
"points_activity": "Activity",
"transfer": "Köçürmə",
"power_up": "To Vesting",
"transfer_from_savings": "Yığımlardan",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Rəylər",
"reveal_comment": "Rəyi açın",
"reveal_comment": "Reveal Content",
"read_more": "Daha çox rəy oxuyun",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Награда за участие",
"author_reward": "Авторска награда",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Награда за благодетели",
"claim_reward_balance": "Получи награда",
"points_activity": "Activity",
"transfer": "Прехвърляне",
"power_up": "Подсилване на гласа",
"transfer_from_savings": "От спестявания",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Коментари",
"reveal_comment": "Покажи коментара",
"reveal_comment": "Reveal Content",
"read_more": "Прочети още коментари",
"more_replies": "отговори",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "কিউরেটর পুরস্কার",
"author_reward": "লেখক পুরস্কার",
"community_reward": "Community Reward",
"comment_benefactor_reward": "উপকারকারীর পুরষ্কার",
"claim_reward_balance": "পুরস্কার দাবি",
"points_activity": "Activity",
"transfer": "স্থানান্তর",
"power_up": "To Vesting",
"transfer_from_savings": "সঞ্চয় থেকে",
@ -912,7 +914,7 @@
},
"comments": {
"title": "মন্তব্য",
"reveal_comment": "মন্তব্য প্রকাশ করুন",
"reveal_comment": "Reveal Content",
"read_more": "আরও মন্তব্য পড়ুন",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Nagrada za Glasanje",
"author_reward": "Autorska Nagrada",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Dobrotvorna Nagrada",
"claim_reward_balance": "Zatražite Nagradu ",
"points_activity": "Activity",
"transfer": "Prijenos",
"power_up": "Za Dodijeliti",
"transfer_from_savings": "Od štednje",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Komentari",
"reveal_comment": "Prikaži komentar",
"reveal_comment": "Reveal Content",
"read_more": "Pročitajte još komentara",
"more_replies": "odgovori",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Kurátorské odměny od",
"author_reward": "Autorská odměna",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Odměna pro příjemce",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Kuratoren-Belohnung",
"author_reward": "Autoren-Belohnung",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Belohnung für den Gönner",
"claim_reward_balance": "Belohnung abholen ",
"points_activity": "Activity",
"transfer": "Überweisen",
"power_up": "To Vesting",
"transfer_from_savings": "aus den Ersparnissen",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Kommentare",
"reveal_comment": "Kommentar anzeigen",
"reveal_comment": "Reveal Content",
"read_more": "Weitere Kommentare",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -915,7 +915,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments":"Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Recompensa por curaduria",
"author_reward": "Recompensa del autor",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Recompensa de Benefactor del comentario",
"claim_reward_balance": "Reclamar recompensa ",
"points_activity": "Activity",
"transfer": "Transferir",
"power_up": "A invertir",
"transfer_from_savings": "Desde Ahorros",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Recompensa de curación",
"author_reward": "Recompensa de autor",
"community_reward": "Recompensas de comunidad",
"comment_benefactor_reward": "Recompensa de Benefactor del comentario",
"claim_reward_balance": "Reclamar recompensa ",
"points_activity": "Actividad",
"transfer": "Transferir",
"power_up": "A invertir",
"transfer_from_savings": "Desde Ahorros",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comentarios",
"reveal_comment": "Revelar comentario",
"reveal_comment": "Revelar Contenido",
"read_more": "Cargar más comentarios",
"more_replies": "respuestas",
"no_comments": "Sé el primero en responder..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Kuraatori tasu",
"author_reward": "Autoritasu",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Kasusaaja tasu",
"claim_reward_balance": "Tasu lunastatud ",
"points_activity": "Activity",
"transfer": "Ülekanne",
"power_up": "To Vesting",
"transfer_from_savings": "Hoiusest",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Kommentaarid",
"reveal_comment": "Näita kommentaari",
"reveal_comment": "Reveal Content",
"read_more": "Näita veel kommentaare",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "پاداش مشارکت",
"author_reward": "پاداش نویسنده",
"community_reward": "Community Reward",
"comment_benefactor_reward": "پاداش حامی",
"claim_reward_balance": "دریافت پاداش",
"points_activity": "Activity",
"transfer": "انتقال",
"power_up": "To Vesting",
"transfer_from_savings": "از پس انداز",
@ -912,7 +914,7 @@
},
"comments": {
"title": "نظرات",
"reveal_comment": "نشان دادن نظریه",
"reveal_comment": "Reveal Content",
"read_more": "نظرات بیشتر را بخوانید",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Tarkastuspalkinto",
"author_reward": "Julkaisupalkinto",
"community_reward": "Yhteisöpalkkiot",
"comment_benefactor_reward": "Hyötyjäpalkkio",
"claim_reward_balance": "Lunasta palkkio ",
"points_activity": "Aktiivisuus",
"transfer": "Siirto",
"power_up": "Ansaintaan",
"transfer_from_savings": "Säästöistä",
@ -599,7 +601,7 @@
"warning": "Varoitus",
"invalid_pincode": "Virheellinen PIN-koodi, tarkista koodi ja yritä uudelleen.",
"remove_alert": "Haluatko varmasti poistaa?",
"remove_all_alert": "Are you sure you want to remove all selected items?",
"remove_all_alert": "Haluatko varmasti poistaa kaikki valitut?",
"clear_alert": "Haluatko varmasti poistaa?",
"clear_user_alert": "Haluatko varmasti tyhjentää kaikki historiatiedot?",
"decrypt_fail_alert": "Sovelluksen tila on virheellinen, ole hyvä ja kirjaudu uudelleen nollataksesi tilan.",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Kommentit",
"reveal_comment": "Näytä kommentti",
"reveal_comment": "Reveal Content",
"read_more": "Lue lisää kommentteja",
"more_replies": "vastaukset",
"no_comments": "Ole ensimmäinen kommentoija..."
@ -1009,11 +1011,11 @@
},
"quick_reply": {
"placeholder": "Lisää kommentti...",
"placeholder_wave": "What's happening?",
"summary_wave": "Will be published in: {host}",
"placeholder_wave": "Mitä tapahtuu?",
"summary_wave": "Julkaistaan: {host}",
"comment": "Kommentti",
"reply": "VASTAA",
"publish": "PUBLISH",
"publish": "Julkaise",
"close": "SULJE"
},
"walkthrough": {
@ -1035,11 +1037,11 @@
"detected_url": "Havaittu URL",
"unsupported_alert_title": "URL-osoitetta ei tuettu!",
"unsupported_alert_desc": "Ole hyvä ja skannaa kelvollinen ecency url.",
"confirmTransaction": "Confirm transaction",
"approve": "Approve",
"cancel": "Cancel",
"confirmTransaction": "Vahvista tapahtuma",
"approve": "Hyväksy",
"cancel": "Peruuta",
"multi_array_ops_alert": "Multiple operations array detected!",
"multi_array_ops_aler_desct": "Ecency does not support signing multiple operations, yet"
"multi_array_ops_aler_desct": "Ecency ei tue vielä useiden toimintojen vahvistamista"
},
"history": {
"edit": "Muokkaushistoria",

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation gantimpala",
"author_reward": "Gantimpala ng may-akda",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Makaka-benepisyo sa Gantimpala",
"claim_reward_balance": "Kunin ang Gantimpala ",
"points_activity": "Activity",
"transfer": "Paglipat",
"power_up": "Patungong Vesting",
"transfer_from_savings": "Galing sa Inipon",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Mga komento",
"reveal_comment": "Ibunyag ang komento",
"reveal_comment": "Reveal Content",
"read_more": "Magbasa ng maraming komento",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,14 +2,16 @@
"wallet": {
"curation_reward": "Gains de curation",
"author_reward": "Gain de l'Auteur",
"comment_benefactor_reward": "Benefactor Reward",
"community_reward": "Récompenses de la communauté",
"comment_benefactor_reward": "Les bénéficiaires des récompenses",
"claim_reward_balance": "Réclamer la récompense ",
"points_activity": "Activité",
"transfer": "Transférer",
"power_up": "To Vesting",
"transfer_from_savings": "De l'économie",
"withdraw_savings": "Withdraw Savings",
"withdraw_vesting": "Power Down | Unstake",
"open_order": "Open Order",
"open_order": "Ouvrir la commande",
"fill_order": "Remplir lordre",
"post": "Publier",
"comment": "Commentaire",
@ -20,9 +22,9 @@
"incoming_transfer_title": "Transfert entrant",
"outgoing_transfer_title": "Transfert sortant",
"checkin_extra": "Bonus",
"staked": "Staked",
"delegations_in": "Delegagtions In",
"delegations_out": "Delegations Out",
"staked": "Stakée",
"delegations_in": "Délégations reçues",
"delegations_out": "Délégations sortantes",
"delegation": "Délégation",
"delegations": "Délégations",
"delegation_title": "Récompense de délégation",
@ -54,17 +56,17 @@
"to": "À",
"estimated_value_desc": "Selon la valeur d'achat",
"estimated_value": "Valeur estimée",
"vote_value": "Vote value",
"delegated_hive_power": "Delegated hive power",
"vote_value": "Valeur du vote",
"delegated_hive_power": "Hive power déléguée",
"powering_down_hive_power": "Powering down",
"received_hive_power": "Received hive power",
"received_hive_power": "Hive Power reçu",
"total_hive_power": "Total hive power",
"savings": "Savings",
"estimated_amount": "Valeur de vote",
"amount_information": "Faites glisser le curseur pour ajuster le montant",
"amount": "Montant",
"memo": "Mémo",
"tap_update": "Tap to update",
"tap_update": "Appuyer pour mettre à jour",
"information": "Are you sure to proceed with transaction?",
"amount_desc": "Solde",
"memo_desc": "Ce mémo est public",
@ -83,7 +85,7 @@
"withdraw_hive": "Withdraw Savings",
"withdraw_hbd": "Withdraw Savings",
"transfer_to_savings": "Vers les économies",
"swap_token": "Swap Token",
"swap_token": "Échanger des jetons",
"convert": "Convertir",
"convert_request": "Convert Request",
"escrow_transfer": "Escrow Transfer",
@ -96,13 +98,13 @@
"fill_transfer_from_savings": "Épargne effectuée",
"fill_vesting_withdraw": "PowerDown executed",
"engine_title": "Hive Engine Tokens",
"engine_claim_btn": "Claim Rewards ({count})",
"engine_select_assets": "Select Assets",
"available_assets": "Available Assets",
"selected_assets": "Selected Assets",
"no_selected_assets": "Add from available",
"manage_assets": "Add / Remove Assets",
"tokens_create": "Token Created",
"engine_claim_btn": "Réclamer les récompenses ({count})",
"engine_select_assets": "Sélectionner l'actif",
"available_assets": "Actifs disponibles",
"selected_assets": "Actifs sélectionnés",
"no_selected_assets": "Ajouter à partir du disponible",
"manage_assets": "Ajout/Suppressions des actifs",
"tokens_create": "Jeton créé",
"tokens_issue": "Tokens Issued",
"tokens_transfer": "Tokens Transferred",
"tokens_transferToContract": "Tokens Transferred to Contract",
@ -121,28 +123,28 @@
"tokens_undelegateStart": "Undelegation Started",
"tokens_undelegateDone": "Undelegation Completed",
"tokens_transferFee": "Token Transfer Fee",
"market_cancel": "Order Canceled",
"market_placeOrder": "Order Placed",
"market_expire": "Order Expired",
"market_buy": "Tokens Bought",
"market_buyRemaining": "Remaining Tokens Transferred (Buy)",
"market_sell": "Tokens Sold",
"market_cancel": "Commande annulée",
"market_placeOrder": "Commande passée",
"market_expire": "Commande expirée",
"market_buy": "Jetons Achetés",
"market_buyRemaining": "Jetons Restants transférés (Acheter)",
"market_sell": "Jetons vendus",
"market_sellRemaining": "Remaining Tokens Transferred (Sell)",
"market_close": "Order Closed",
"mining_lottery": "Lottery Won",
"market_close": "Commande fermée",
"mining_lottery": "Loterie gagnée",
"witnesses_proposeRound": "Witnesses Propose Round",
"hivepegged_buy": "HIVE Deposited",
"hivepegged_withdraw": "HIVE Withdrawn",
"inflation_issueNewTokens": "New BEE Tokens Issued",
"nft_transfer": "NFTs Transferred",
"nft_issue": "NFT Issued",
"nft_issueMultiple": "Multiple NFTs Issued",
"nft_transfer": "NFTs transférés",
"nft_issue": "NFT émise",
"nft_issueMultiple": "Plusieurs NFT émises",
"nft_burn": "NFT Burned",
"nft_delegate": "NFT Delegated",
"nft_undelegate": "Undelegation Started for NFT",
"nft_undelegateDone": "Undelegation Completed for NFT",
"nft_enableDelegation": "Delegation Enabled for NFT",
"nft_create": "NFT Symbol Created",
"nft_create": "Symbole NFT créé",
"nft_addAuthorizedIssuingAccounts": "Authorized Issuing Accounts Added to NFT",
"nft_setGroupBy": "Group By Set for NFT Symbol",
"nft_setProperties": "Properties Set for NFT Symbol",
@ -154,16 +156,16 @@
"nft_updateName": "NFT Name Updated",
"nft_updateOrgName": "NFT Organization Name Updated",
"nft_updateProductName": "NFT Product Name Updated",
"nft_transferFee": "NFT Transfer Fee",
"nftmarket_buy": "Order Bought",
"nftmarket_transferFee": "Buy Order Fee",
"nftmarket_sell": "Order Listed",
"nftmarket_cancel": "Order Canceled",
"nftmarket_changePrice": "Order Price Changed",
"nftmarket_enableMarket": "Market Enabled for NFT Symbol",
"nft_transferFee": "Frais de transfert de NFT",
"nftmarket_buy": "Commande achetée",
"nftmarket_transferFee": "Frais de commande d'achat",
"nftmarket_sell": "Liste des commandes",
"nftmarket_cancel": "Commande annulée",
"nftmarket_changePrice": "Prix de la commande modifié",
"nftmarket_enableMarket": "Marché activé pour symbole NFT",
"ecency": {
"title": "Points",
"name": "Ecency Points",
"name": "Points d'Ecency",
"buy": "GET POINTS"
},
"savinghive": {
@ -174,7 +176,7 @@
},
"hive": {
"title": "HIVE",
"name": "Liquid Hive",
"name": "Hive Liquide",
"buy": "OBTENIR HIVE"
},
"hbd": {
@ -186,7 +188,7 @@
"name": "Staked Hive"
},
"hive_dollar": {
"name": "Hive Dollar"
"name": "Hive Dollars"
},
"btc": {
"title": "BTC",
@ -195,8 +197,8 @@
},
"last_updated": "Last Updated:",
"updating": "Updating...",
"coin_details": "Details",
"change": "Change",
"coin_details": "Afficher les détails",
"change": "Changement",
"activities": "Activités",
"savings_withdrawal": "Pending Withdrawals",
"open_orders": "Ordres ouverts",
@ -216,19 +218,19 @@
"lock_liquidity_spk": "Lock Liquidity",
"power_up_spk": "Power Up | Stake",
"power_down_spk": "Power Down | Unstake",
"low_liquidity": "Low Liquidity!",
"low_liquidity": "Faible liquidité !",
"inactive_token": "Token is relatively inactive, some functionalities might be affected.",
"scheduled_power_downs": "Scheduled Power Downs",
"delegated_larynx_power": "Granted Power",
"delegating_larynx_power": "Delegating Power",
"total_larynx_power": "Total Power"
"total_larynx_power": "Puissance Totale"
},
"notification": {
"vote": "voté",
"unvote": "sous-vote",
"reply": "répondu à",
"mention": "mentionné dans",
"favorites": "made new post",
"favorites": "crée un nouveau message",
"bookmarks": "replied to bookmarked content",
"follow": "vous a suivi",
"unfollow": "ne vous suit plus",
@ -309,7 +311,7 @@
"currency": "Devise",
"language": "Langue",
"server": "Serveur",
"color_theme": "Appearance",
"color_theme": "Apparence",
"push_notification": "Notification push",
"notification": {
"follow": "Abonné",
@ -317,13 +319,13 @@
"comment": "Commentaire",
"mention": "Mention",
"favorite": "Favoris",
"bookmark": "Bookmarks",
"bookmark": "Signets",
"reblog": "Reblog",
"transfers": "Transferts",
"delegations": "Délégations"
},
"pincode": "Pincode",
"biometric": "Finger Print / Face Unlock",
"biometric": "Empreinte digitale / Déverrouillage facial",
"reset_pin": "Réinitialisez le Code Pin",
"reset": "Réinitialiser",
"nsfw_content": "NSFW",
@ -336,7 +338,7 @@
"always_warn": "Toujours avertir"
},
"theme": {
"system": "Device settings",
"system": "Paramètres de l'appareil",
"light": "Clair",
"dark": "Sombre"
},
@ -348,23 +350,23 @@
"backup_private_keys": "Manage Authorities",
"backup": "Manage",
"keys_warning": "Sensitive account information!\nEcency must be secured with PIN code before viewing private keys.",
"set_pin": "Set PIN",
"set_pin": "Configurer PIN",
"backup_keys_modal": {
"owner_key": "Owner Key",
"active_key": "Active Key",
"posting_key": "Posting Key",
"memo_key": "Memo Key",
"key_copied": "Key copied to clipboard",
"owner_key": "Clé Propriétaire",
"active_key": "Clé active",
"posting_key": "Clé de publication",
"memo_key": "Clé Mémo",
"key_copied": "Clé copiée dans le presse-papiers",
"no_keys": "Your signin method is hivesigner. Application does not have any key stored in device. Kindly login with master password to generate keys",
"reveal_private": "Reveal Private",
"reveal_public": "Reveal Public",
"public": "Public",
"private": "Private",
"import_key": "Import Private",
"enter_pass": "Enter Password or Private Key",
"import_key_modal_desc": "Individual Private key or Master password to import all keys",
"reveal_private": "Révéler le privé",
"reveal_public": "Révéler public",
"public": "Publique",
"private": "Privé",
"import_key": "Importer la clé privée",
"enter_pass": "Entrez le mot de passe ou la clé privée",
"import_key_modal_desc": "Clé privée individuelle ou mot de passe principal pour importer toutes les clés",
"sign": "Sign",
"sign_input_placeholder": "Master password or Private Key",
"sign_input_placeholder": "Mot de passe maître ou clé privée",
"import_failed": "Keys Import Failed"
}
},
@ -445,7 +447,7 @@
"add_an_existing_account": "Ajouter à un compte existant",
"accounts": "Comptes",
"refer": "Recommandez Et Gagnez",
"qr": "QR Scan"
"qr": "Scanner le QR code"
},
"header": {
"title": "Connectez-vous pour personnaliser votre flux",
@ -491,13 +493,13 @@
"select_community": "Choisir une communauté",
"community_selected": "Communauté sélectionnée",
"my_communities": "Mes Communautés",
"top_communities": "Top Communities",
"schedule_modal_title": "Schedule Post",
"top_communities": "Meilleures Communautés",
"schedule_modal_title": "Planifier la publication",
"snippets": "Snippets",
"alert_init_title": "New Content",
"alert_init_title": "Nouveau contenu",
"alert_init_body": "Open recent draft or Create new post",
"alert_btn_draft": "Recent Draft",
"alert_btn_new": "New Post",
"alert_btn_new": "Nouvelle Publication",
"alert_pub_edit_title": "Publishing edits",
"alert_pub_new_title": "Publishing new post",
"alert_pub_body": "Êtes-vous sûr ?",
@ -510,14 +512,14 @@
"two_thumbs_required": "Add more images in your post before setting thumbnail",
"scheduled_for": "Scheduled For",
"scheduled_immediate": "Immediate",
"scheduled_later": "Later",
"settings_title": "Post Options",
"done": "DONE",
"draft_save_title": "Saving Draft",
"draft_update": "Update current draft",
"draft_save_new": "Save as new draft",
"label": "Label",
"enter_label_placeholder": "Enter Label (Optional)",
"scheduled_later": "Plus tard",
"settings_title": "Options de publication",
"done": "TERMINÉ",
"draft_save_title": "Enregistrement du brouillon",
"draft_update": "Mettre à jour le brouillon actuel",
"draft_save_new": "Enregistrer en tant que nouveau brouillon",
"label": "Étiquette",
"enter_label_placeholder": "Entrez l'étiquette (facultatif)",
"url": "URL",
"enter_url_placeholder": "Entrer lURL",
"link_type_text": "Type de lien",
@ -575,7 +577,7 @@
"move": "Déplacer",
"continue": "Continuer",
"okay": "D'accord",
"done": "Done",
"done": "Terminé",
"move_question": "Êtes-vous sûr de vouloir déplacer vers Broullions ?",
"success_shared": "Succès ! Contenu soumis !",
"success_moved": "Déplacé vers Brouillons",
@ -633,23 +635,23 @@
"update_available_title": "Mise à jour possible ({version})",
"update_available_body": "Using latest version of Ecency gives you the best experience",
"update": "Mettre à jour maintenant",
"remind_later": "Remind Later",
"failed_to_open": "Failed to open a link",
"remind_later": "Me le rappeler ultérieurement",
"failed_to_open": "Impossible d'ouvrir un lien",
"restart_ecency": "Redémarrer Ecency ?",
"restart_ecency_desc": "Applying changes will require a restart.",
"invalid_response": "Could not process request, Try again later.",
"wallet_updating": "Wallet update in progress, try again as update finishes",
"claim_failed": "Failed to claim rewards, {message}\nTry again or write to support@ecency.com",
"connection_issues": "The server is unreachable, please check your connection and try again.",
"open_settings": "Open Settings",
"open_settings": "Ouvrir les paramètres",
"auth_expired": "We need to verify you still has access to your keys, please verify login.",
"verify": "Verify",
"verify": "Vérifier",
"logging_out": "Logging out {username}"
},
"post": {
"reblog_alert": "Are you sure you want to reblog?",
"reblog_alert": "Êtes-vous sûr de vouloir rebloguer ?",
"removed_hint": "Le contenu est indisponible",
"select_action": "Select Action",
"select_action": "Sélectionnez une action",
"copy_link": "Copier le lien",
"copy_text": "Copier le texte",
"reblogged": "reblogué par",
@ -662,7 +664,7 @@
"image_saved": "Image sauvegardée dans la Galerie Photo",
"image_saved_error": "Erreur de sauvegarde de l'image",
"wrong_link": "Mauvais lien",
"in": "in",
"in": "dans",
"reveal_muted": "MUTED\nTap to reveal content",
"posted_by": "Posted by {username} via {appname} ",
"ecency_waves": "Ecency Waves"
@ -673,7 +675,7 @@
"empty_list": "Rien ici",
"deleted": "Brouillon supprimé",
"unsynced_title": "Unsynced Draft",
"unsynced_body": "Draft not synced with Ecency cloud, resume editing and save draft"
"unsynced_body": "Le brouillon n'est pas synchronisé avec le nuage Ecency, reprise de l'édition et l'enregistrement du brouillon"
},
"schedules": {
"title": "Plannings",
@ -681,9 +683,9 @@
"deleted": "Publication planifiée supprimée",
"move": "Déplacer vers brouillons",
"moved": "Déplacé vers brouillons",
"pending": "Pending",
"pending": "En attente",
"postponed": "Postponed",
"published": "Published",
"published": "Publié",
"error": "Erreur"
},
"bookmarks": {
@ -697,13 +699,13 @@
},
"report": {
"added": "Contenu indésirable signalé",
"confirm_report_title": "Confirm Report!",
"confirm_report_body": "Are you sure you want report?"
"confirm_report_title": "Confirmer le Signalement!",
"confirm_report_body": "Êtes-vous sûr de vouloir signaler ?"
},
"delete": {
"confirm_delete_title": "Confirm Delete",
"confirm_delete_body": "Are you sure you want to delete account? It will erase all of your data",
"request_sent": "Your request for deletion is sent"
"confirm_delete_title": "Confirmer la suppression",
"confirm_delete_body": "Êtes-vous sûr de vouloir supprimer le compte ? Toutes vos données seront effacées",
"request_sent": "Votre demande de suppression a été envoyée"
},
"favorites": {
"title": "Favoris",
@ -727,7 +729,7 @@
"beneficiaries": "Bénéficiaires",
"warn_zero_payout": "Le montant doit atteindre 0,02 $ pour le retrait",
"breakdown": "Répartition",
"max_accepted": "Max Accepted"
"max_accepted": "Maximum accepté"
},
"post_dropdown": {
"copy": "copier le lien",
@ -738,11 +740,11 @@
"promote": "promouvoir",
"boost": "accélérer",
"report": "signaler",
"pin-blog": "Pin to blog",
"unpin-blog": "Unpin from blog",
"pin-community": "Pin to community",
"unpin-community": "Unpin from community",
"edit-history": "Edit History",
"pin-blog": "Épingler sur le blog",
"unpin-blog": "Désépingler du blog",
"pin-community": "Épingler à la communauté",
"unpin-community": "Dépingler de la communauté",
"edit-history": "Modifier l'historique",
"mute": "Mute / Block"
},
"deep_link": {
@ -768,7 +770,7 @@
"amount_information": "Faites glisser le curseur pour ajuster le montant",
"amount": "Montant",
"memo": "Mémo",
"information": "Continue transaction?",
"information": "Confirmer la transaction?",
"amount_desc": "Solde",
"memo_desc": "Ce mémo est public",
"convert_desc": "Convertir prend 3,5 jours et n'est PAS recommandé SI le prix HBD est supérieur à $1",
@ -793,8 +795,8 @@
"unstake_engine": "Unstake Token",
"delegate_engine": "Delegate Token",
"undelegate_engine": "Undelegate Token",
"transfer_spk": "Transfer SPK",
"transfer_larynx_spk": "Transfer LARYNX",
"transfer_spk": "Transférer SPK",
"transfer_larynx_spk": "Transférer LARYNX",
"power_up_spk": "Power Up LARYNX",
"power_down_spk": "Power Down LARYNX",
"lock_liquidity_spk": "Lock Liquidity LARYNX",
@ -815,7 +817,7 @@
"account_detail_subhead": "Enter username for HIVE Power delegation",
"delegat_detail_head": "Delegation Details",
"delegat_detail_subhead": "New amount overwrites already delegated HIVE Power ",
"new_amount": "New Amount",
"new_amount": "Nouveau montant ",
"review": "REVIEW",
"confirm": "Confirmer la délégation",
"confirm_summary": "Delegate {hp} HP ({vests} VESTS) To @{delegator} from @{delegatee} ",
@ -834,23 +836,23 @@
"invalid_amount_desc": "Veuillez saisir un montant valide",
"account_select_title": "Détails du Compte",
"account_select_description": "Operations related to funds are irreversible, make sure username is correct",
"amount_select_title": "Action Details",
"amount_select_title": "Détails de l'action",
"amount_select_description": "Enter amount within maximum available balance {suffix}",
"amount_select_desc_limit": " and must be greater than 0.001"
"amount_select_desc_limit": " et doit être supérieur à 0.001"
},
"trade": {
"swap_token": "Swap Your Funds",
"more-than-balance": "Entered amount is more than your available balance",
"offer-unavailable": "Offer not available for entered amount. Please reduce amount",
"too-much-slippage": "We highly recommend you to reduce amount for better pricing",
"fee": "Fee",
"free": "Free",
"confirm_swap": "Confirm Swap",
"fee": "Frais",
"free": "Gratuit",
"confirm_swap": "Confirmer l'échange",
"swap_for": "Swapping {fromAmount} for {toAmount}",
"swap_successful": "Successfully Swapped",
"swap_pending": "Swap Pending!",
"swap_pending_body": "Swap requests may be pending, please check pending open orders in selected token details",
"new_swap": "New Swap"
"new_swap": "Nouvel échange"
},
"boost": {
"title": "Obtenir des points",
@ -867,14 +869,14 @@
"points_purchase_fail_msg": "Points purchase failed\n{message}"
},
"buy_account": {
"title": "Buy Account",
"btn_register": "Buy Account - {price}",
"title": "Acheter un compte",
"btn_register": "Acheter un compte - {price}",
"desc": "Get a full-fledged, premium Hive account with no extra checks and few perks such as:\n\n- Instant creation without extra checks and waiting\n- 3x RC compared to normal new accounts for 90 days\n- 300 Points to help you get started",
"claim": "Claim Paid Account"
"claim": "Revendiquer le compte payant"
},
"free_account": {
"title": "Compte gratuit",
"btn_register": "Register Free",
"btn_register": "Inscription gratuite",
"desc": "Get a full-fledged Hive account, this method has basic checks to make sure botnet doesn't abuse our signup faucet."
},
"free_estm": {
@ -912,25 +914,25 @@
},
"comments": {
"title": "Commentaires",
"reveal_comment": "Révéler le commentaire",
"reveal_comment": "Reveal Content",
"read_more": "Lire plus de commentaires",
"more_replies": "replies",
"no_comments": "Be the first to respond..."
"more_replies": "réponses",
"no_comments": "Soyez le premier à répondre..."
},
"search_result": {
"others": "Autres",
"best": {
"title": "Best"
"title": "À la une"
},
"people": {
"title": "People"
"title": "Personnes"
},
"topics": {
"title": "Sujets"
},
"communities": {
"title": "Groups",
"subscribe": "Join",
"title": "Groupes",
"subscribe": "Rejoindre",
"unsubscribe": "Quitter",
"subscribers": "Membres",
"posters": "Publieurs",
@ -956,47 +958,47 @@
"new_post": "Nouvelle Publication",
"community": "communauté",
"details": "Détails",
"muted": "Muted",
"payout": "Payout"
"muted": "En sourdine",
"payout": "Paiement"
},
"user": {
"follow": "Follow",
"unfollow": "Unfollow",
"follow": "Suivre",
"unfollow": "Ne plus suivre",
"add_to_favourites": "AJOUTER AUX FAVORIS",
"remove_from_favourites": "REMOVE FROM FAVOURITES",
"mute": "MUTE / BLOCK",
"unmute": "UNMUTE / UNBLOCK",
"remove_from_favourites": "SUPPRIMER DE FAVORIS",
"mute": "MUTE / BLOC",
"unmute": "DÉSACTIVER / DÉBLOQUER",
"report": "REPORT USER",
"delegate": "DELEGATE HIVE POWER"
},
"communities": {
"joined": "Membership",
"joined": "Adhésion",
"discover": "Découvrir",
"discover_communities": "Discover Communities",
"discover_communities": "Découvrir les communautés",
"no_communities": "Connect with people who share your interests by joining Communities."
},
"empty_screen": {
"nothing_here": "Nothing here"
"nothing_here": "Il n'y a rien ici"
},
"beneficiary_modal": {
"percent": "Percent",
"percent": "Pourcentage",
"username": "Nom d'utilisateur",
"addAccount": "Add Account",
"addAccount": "Ajouter un compte",
"save": "Sauvegarder",
"cancel": "Annuler"
},
"welcome": {
"label": "Welcome to",
"label": "Bienvenue à",
"title": "Ecency",
"line1_heading": "Are you looking for community?",
"line1_body": "Uncensored, immutable, rewarding, decentralized, that you own.",
"line1_heading": "Vous recherchez une communauté ?",
"line1_body": "Uncensuré, immuable, gratifiant, décentralisé, que vous possédez.",
"line2_heading": "Nous avons une solution !",
"line2_body": "Utilizing blockchain, censorship-free, decentralized and rewarding.",
"line3_heading": "Rejoignez les communautés Ecency !",
"line3_body": "Build community you own, get rewarded and reward others.",
"get_started": "Get started!",
"terms_description": "By accepting, you agree to our Terms of Service and Privacy Policies.",
"terms_text": "Read Here!"
"line3_body": "Construisez la communauté que vous possédez, gagnez des récompenses et récompensez les autres.",
"get_started": "C'est parti !",
"terms_description": "En vous inscrivant, vous acceptez nos conditions d'utilisation et notre politique de confidentialité.",
"terms_text": "Lisez ça !"
},
"time": {
"second": "secondes",
@ -1009,7 +1011,7 @@
},
"quick_reply": {
"placeholder": "Ajouter un commentaire...",
"placeholder_wave": "What's happening?",
"placeholder_wave": "Quoi de neuf ?",
"summary_wave": "Will be published in: {host}",
"comment": "Commentaire",
"reply": "RÉPONDRE",
@ -1017,32 +1019,32 @@
"close": "FERMER"
},
"walkthrough": {
"load_draft_tooltip": "Load your lastest draft here"
"load_draft_tooltip": "Chargez votre dernier brouillon ici"
},
"refer": {
"refer_earn": "Refer & Earn",
"refer": "Refer",
"rewarded": "Referral points rewarded",
"not_rewarded": "Referral reward pending",
"delegate_hp": "Delegate HP",
"earned": "Earned Points",
"pending": "Pending Points",
"empty_text": "Refer your loved ones today and earn free points"
"refer_earn": "Recommandez Et Gagnez",
"refer": "Parrainé",
"rewarded": "Points de parrainage récompensés",
"not_rewarded": "Récompense de parrainage en attente",
"delegate_hp": "Déléguer HP",
"earned": "Points gagnés",
"pending": "Points en attente",
"empty_text": "Parrainez vos proches aujourd'hui et gagnez des points gratuits"
},
"qr": {
"qr_scan": "QR Scan",
"open": "Open URL",
"detected_url": "Detected URL",
"unsupported_alert_title": "Unsupported URL!",
"unsupported_alert_desc": "Please scan a valid ecency url.",
"confirmTransaction": "Confirm transaction",
"approve": "Approve",
"cancel": "Cancel",
"qr_scan": "Scanner le QR code",
"open": "Ouvrir l'URL",
"detected_url": "URL détectée",
"unsupported_alert_title": "URL non supportée!",
"unsupported_alert_desc": "Veuillez scanner une Url Ecency valide.",
"confirmTransaction": "Confirmer la transaction",
"approve": "Approuver",
"cancel": "Annuler",
"multi_array_ops_alert": "Multiple operations array detected!",
"multi_array_ops_aler_desct": "Ecency does not support signing multiple operations, yet"
"multi_array_ops_aler_desct": "Ecency ne prend pas en charge la signature de multiples opérations pour le moment"
},
"history": {
"edit": "Edit History",
"edit": "Modifier l'historique",
"version": "Version"
}
}

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Bokarjis Sigislaun",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Ufarbair",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Waurda",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "תגמול עבור פעילויות ותוכן",
"author_reward": "תגמול הסופר",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "העברה",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "תגובות",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "अध्यक्षता इनाम",
"author_reward": "लेखक इनाम",
"community_reward": "Community Reward",
"comment_benefactor_reward": "लाभार्थी पुरस्कार",
"claim_reward_balance": "इनाम दावा ",
"points_activity": "Activity",
"transfer": "स्थानांतरण",
"power_up": "वेस्टिंग को",
"transfer_from_savings": "बचत से",
@ -912,7 +914,7 @@
},
"comments": {
"title": "विवेचनाऐं",
"reveal_comment": "टिप्पणी का खुलासा",
"reveal_comment": "Reveal Content",
"read_more": "अधिक टिप्पणियाँ पढ़ें",
"more_replies": "जवाब",
"no_comments": "जवाब देने वाले पहले बनें..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Nagrada za Glasanje",
"author_reward": "Autorova Nagrada",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Pošalji",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Komentari",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Kuráció Jutalom",
"author_reward": "Szerzői Jutalom",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Jótevői jutalom",
"claim_reward_balance": "Jutalom átvétele ",
"points_activity": "Activity",
"transfer": "Átutalás",
"power_up": "To Vesting",
"transfer_from_savings": "A megtakarításoktól",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Hozzászólások",
"reveal_comment": "Hozzászólás megjelenítése",
"reveal_comment": "Reveal Content",
"read_more": "Még több hozzáaszólás",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Imbalan kurasi",
"author_reward": "Imbalan Penulis",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Hadiah Benefactor",
"claim_reward_balance": "Klaim Hadiah ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "Untuk Menjamin",
"transfer_from_savings": "Dari Tabungan",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Komentar",
"reveal_comment": "Ungkapkan komentar",
"reveal_comment": "Reveal Content",
"read_more": "Baca lebih banyak komentar",
"more_replies": "balasan",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Ricompensa Curatore",
"author_reward": "Ricompensa Autore",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Ricompensa dei Benefattori",
"claim_reward_balance": "Richiedi ricompensa ",
"points_activity": "Activity",
"transfer": "Trasferimento",
"power_up": "To Vesting",
"transfer_from_savings": "Dal salvadanaio",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Commenti",
"reveal_comment": "Mostra Commento",
"reveal_comment": "Reveal Content",
"read_more": "Carica altri commenti",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "キュレーション報酬",
"author_reward": "投稿者報酬",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor 報酬",
"claim_reward_balance": "報酬を請求 ",
"points_activity": "Activity",
"transfer": "送金",
"power_up": "To Vesting",
"transfer_from_savings": "貯蓄口座からの送金",
@ -912,7 +914,7 @@
},
"comments": {
"title": "コメント",
"reveal_comment": "コメントを表示",
"reveal_comment": "Reveal Content",
"read_more": "もっとコメントを読む",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Rrbeḥ n umeskar",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Ceyyeɛ",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Iwenniten",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "큐레이션 보상",
"author_reward": "저자 보상",
"community_reward": "Community Reward",
"comment_benefactor_reward": "베네피셔리 보상",
"claim_reward_balance": "보상 청구하기",
"points_activity": "Activity",
"transfer": "전송",
"power_up": "파워업",
"transfer_from_savings": "안전 금고에서 출금하기",
@ -912,7 +914,7 @@
},
"comments": {
"title": "작성한 댓글",
"reveal_comment": "명성도가 낮은 사용자의 댓글 보기",
"reveal_comment": "Reveal Content",
"read_more": "댓글 더 보기",
"more_replies": "댓글",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Xelata Kuratorê",
"author_reward": "Xelata Nivîskêr",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Xelata Xêrxwaz",
"claim_reward_balance": "Xelata Daxwazê ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "Ji Berhevkirinan",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Şîrove",
"reveal_comment": "Şîroveyê eşkere bike",
"reveal_comment": "Reveal Content",
"read_more": "Zêdetir şîroveyan bixwîne",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Билдирүүлөр",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Kuracijos Atlygis",
"author_reward": "Autorius Atlygis",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Labdarystės atlygis",
"claim_reward_balance": "Atsiimti atlygį ",
"points_activity": "Activity",
"transfer": "Pervesti",
"power_up": "Į Teisių suteikimą",
"transfer_from_savings": "Iš santaupų",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Komentarai",
"reveal_comment": "Rodyti komentarus",
"reveal_comment": "Reveal Content",
"read_more": "Skaityti daugiau komentarų",
"more_replies": "atsakytos žinutės",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Ganjaran Kurasi",
"author_reward": "Ganjaran penulis",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Ganjaran Penyumbang",
"claim_reward_balance": "Tuntut Ganjaran ",
"points_activity": "Activity",
"transfer": "Pindah",
"power_up": "Tingkatkan Kuasa",
"transfer_from_savings": "Dari Simpanan",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Komen-komen",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curatie-beloning",
"author_reward": "Auteurs-beloning",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Overschrijven",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Reacties",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Reward For Post Wey You Upvote",
"author_reward": "Person Wey Write Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Ur helper property",
"claim_reward_balance": "Collect your property ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From wia you keep am",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Show dis comment",
"reveal_comment": "Reveal Content",
"read_more": "Check dem comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Wynagrodzenie Kuratora",
"author_reward": "Nagroda autora",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Nagroda dobroczynna",
"claim_reward_balance": "Odbierz nagrodę ",
"points_activity": "Activity",
"transfer": "Przelew",
"power_up": "To Vesting",
"transfer_from_savings": "Z oszczędności",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Komentarze",
"reveal_comment": "Pokaż komentarz",
"reveal_comment": "Reveal Content",
"read_more": "Przeczytaj więcej komentarzy",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Recompensa de Curadoria",
"author_reward": "Recompensa do Autor",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Recompensa de Beneficiário",
"claim_reward_balance": "Solicitar recompensa ",
"points_activity": "Activity",
"transfer": "Transferir",
"power_up": "Power Up",
"transfer_from_savings": "Das poupanças",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comentários",
"reveal_comment": "Revelar comentário",
"reveal_comment": "Reveal Content",
"read_more": "Ler mais comentários",
"more_replies": "respostas",
"no_comments": "Seja o primeiro a comentar..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Recompensă de curare",
"author_reward": "Recompensă Autor",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Recompensa Binefăcătorului",
"claim_reward_balance": "Colectează recompensa ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "De la economii",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comentarii",
"reveal_comment": "Arată comentariul",
"reveal_comment": "Reveal Content",
"read_more": "Vizualizați mai multe comentarii",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Кураторская награда",
"author_reward": "Авторская награда",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Награда бенефициару",
"claim_reward_balance": "Получить награду ",
"points_activity": "Activity",
"transfer": "Перевод",
"power_up": "В Силу",
"transfer_from_savings": "Из сейфа",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Комментарии",
"reveal_comment": "Показать комментарий",
"reveal_comment": "Reveal Content",
"read_more": "Читать больше комментариев",
"more_replies": "ответы",
"no_comments": "Прокомментируйте первым..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Nagrada od glasov",
"author_reward": "Avtorska nagrada",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Prenesi",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Nagrade za glasanje",
"author_reward": "Nagrada za autora",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Nagrada dobrotvora",
"claim_reward_balance": "Potvrdi nagradu ",
"points_activity": "Activity",
"transfer": "Prenos",
"power_up": "To Vesting",
"transfer_from_savings": "Od štednje",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Komentari",
"reveal_comment": "Prikaži komentar",
"reveal_comment": "Reveal Content",
"read_more": "Pročitajte još komentara",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Küratör Ödülü",
"author_reward": "Yazar Ödülü",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Bağış Ödülü",
"claim_reward_balance": "Ödül Talep Et ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "Hakediş",
"transfer_from_savings": "Tasarruflardan",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Yorumlar",
"reveal_comment": "Yorumu göster",
"reveal_comment": "Reveal Content",
"read_more": "Daha fazla yorum oku",
"more_replies": "yanıtlar",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Кураторська Винагорода",
"author_reward": "Авторська Винагорода",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Винагорода бенефіціару",
"claim_reward_balance": "Отримати винагороду ",
"points_activity": "Activity",
"transfer": "Переказ",
"power_up": "To Vesting",
"transfer_from_savings": "Із заощаджень",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Коментарі",
"reveal_comment": "Показати коментар",
"reveal_comment": "Reveal Content",
"read_more": "Читати більше коментарів",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Curation Reward",
"author_reward": "Author Reward",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Transfer",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Comments",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Kuratorlik mukofoti",
"author_reward": "Avtorlik mukofoti",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefitsiar mukofoti",
"claim_reward_balance": "Mukofotlarni olish ",
"points_activity": "Activity",
"transfer": "O'tkazma",
"power_up": "Sarmoya kiritish",
"transfer_from_savings": "Jamg'armadan",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Izohlar",
"reveal_comment": "Izhohni ko'rsatish",
"reveal_comment": "Reveal Content",
"read_more": "Ko'proq izohlarni o'qish",
"more_replies": "javoblar",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Phần thưởng curation",
"author_reward": "Phần thưởng cho tác giả",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Benefactor Reward",
"claim_reward_balance": "Claim Reward ",
"points_activity": "Activity",
"transfer": "Chuyển cho",
"power_up": "To Vesting",
"transfer_from_savings": "From Savings",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Bình luận",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "Ere lati ara asayan ibo",
"author_reward": "Ere Ako oro",
"community_reward": "Community Reward",
"comment_benefactor_reward": "Èrè onínúure",
"claim_reward_balance": "Ko ere ",
"points_activity": "Activity",
"transfer": "Fi ranse",
"power_up": "Si iyasọtọ eda",
"transfer_from_savings": "Láti inú àpamọ",
@ -912,7 +914,7 @@
},
"comments": {
"title": "Oro iwoye",
"reveal_comment": "Reveal comment",
"reveal_comment": "Reveal Content",
"read_more": "Read more comments",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "审查奖励",
"author_reward": "作者奖励",
"community_reward": "Community Reward",
"comment_benefactor_reward": "受益者奖励",
"claim_reward_balance": "领取奖励 ",
"points_activity": "Activity",
"transfer": "转账",
"power_up": "To Vesting",
"transfer_from_savings": "储蓄转出",
@ -912,7 +914,7 @@
},
"comments": {
"title": "评论",
"reveal_comment": "显示评论",
"reveal_comment": "Reveal Content",
"read_more": "查看更多评论",
"more_replies": "replies",
"no_comments": "Be the first to respond..."

View File

@ -2,8 +2,10 @@
"wallet": {
"curation_reward": "審查獎勵",
"author_reward": "作者獎勵",
"community_reward": "Community Reward",
"comment_benefactor_reward": "受益者獎勵分配",
"claim_reward_balance": "領取獎勵",
"points_activity": "Activity",
"transfer": "轉賬",
"power_up": "轉為 Hive Power",
"transfer_from_savings": "從儲蓄轉出",
@ -912,7 +914,7 @@
},
"comments": {
"title": "評論",
"reveal_comment": "顯示評論",
"reveal_comment": "Reveal Content",
"read_more": "查看更多評論",
"more_replies": "回復",
"no_comments": "Be the first to respond..."

View File

@ -1510,7 +1510,7 @@ export const postComment = (
permlink,
body,
parentTags,
isEdit = false,
jsonMetadata = null,
) =>
_postContent(
account,
@ -1520,7 +1520,7 @@ export const postComment = (
permlink,
'',
body,
makeJsonMetadataReply(parentTags || ['ecency']),
jsonMetadata ? jsonMetadata : makeJsonMetadataReply(parentTags || ['ecency']),
null,
null,
)

View File

@ -6,7 +6,7 @@ import {
} from '@tanstack/react-query';
import { useEffect, useMemo, useRef, useState } from 'react';
import { unionBy } from 'lodash';
import { unionBy, isArray } from 'lodash';
import { getDiscussionCollection } from '../../hive/dhive';
import { getAccountPosts } from '../../hive/dhive';
@ -22,6 +22,7 @@ export const useWavesQuery = (host: string) => {
const queryClient = useQueryClient();
const cache = useAppSelector(state => state.cache);
const mutes = useAppSelector(state => state.account.currentAccount.mutes);
const cacheRef = useRef(cache);
const cachedVotes = cache.votesCollection
@ -220,10 +221,14 @@ export const useWavesQuery = (host: string) => {
const _dataArrs = wavesQueries.map((query) => query.data);
const _data = unionBy(...wavesQueries.map((query) => query.data), 'url');
const _filteredData = useMemo(() =>
_data.filter(post => isArray(mutes) ? mutes.indexOf(post?.author) < 0 : true),
[mutes, _data])
return {
data: unionBy(..._dataArrs, 'url'),
data: _filteredData,
isRefreshing,
isLoading: isLoading || wavesQueries.lastItem?.isLoading || wavesQueries.lastItem?.isFetching,
fetchNextPage: _fetchNextPage,

View File

@ -18,7 +18,6 @@ import {
DELETE_CLAIM_CACHE_ENTRY,
} from '../constants/constants';
import {
ClaimCache,
Comment,
CacheStatus,
Draft,

View File

@ -27,7 +27,8 @@ export enum CacheStatus {
export interface VoteCache {
amount: number;
isDownvote: boolean;
sliderValue: number;
rshares: number;
percent: number;
incrementStep: number;
votedAt: number;
expiresAt: number;

View File

@ -26,7 +26,7 @@ import { default as ROUTES } from '../../../constants/routeNames';
// Utilities
import {
generatePermlink,
generateReplyPermlink,
generateUniquePermlink,
makeJsonMetadata,
makeOptions,
extractMetadata,
@ -707,7 +707,9 @@ class EditorContainer extends Component<EditorContainerProps, any> {
});
const { post } = this.state;
const permlink = generateReplyPermlink(post.author);
const _prefix = `re-${post.author.replace(/\./g, '')}`
const permlink = generateUniquePermlink(_prefix);
const parentAuthor = post.author;
const parentPermlink = post.permlink;

View File

@ -1,7 +1,6 @@
import React, { useState, useEffect } from 'react';
import { useIntl } from 'react-intl';
import get from 'lodash/get';
import forEach from 'lodash/forEach';
// Components
import { gestureHandlerRootHOC } from 'react-native-gesture-handler';
@ -12,45 +11,38 @@ import AccountListContainer from '../../../containers/accountListContainer';
// Utils
import { getActiveVotes } from '../../../providers/hive/dhive';
import { parseActiveVotes } from '../../../utils/postParser';
import { getResizedAvatar } from '../../../utils/image';
import { useInjectVotesCache } from '../../../providers/queries/postQueries/postQueries';
const filterOptions = ['rewards', 'percent', 'time'];
const VotersScreen = ({ route }) => {
const intl = useIntl();
const [content] = useState(route.params?.content ?? null);
const [activeVotes, setActiveVotes] = useState(get(content, 'active_votes') || []);
const [post, setPost] = useState(route.params?.content ?? null);
const _cPost = useInjectVotesCache(post);
const headerTitle = intl.formatMessage({
id: 'voters.voters_info',
});
useEffect(() => {
const av = get(content, 'active_votes', []);
forEach(av, (value) => {
value.reward = 0;
value.percent = 0;
value.is_down_vote = Math.sign(value.rshares) < 0;
value.avatar = getResizedAvatar(get(value, 'voter'));
});
setActiveVotes(av);
}, []);
useEffect(() => {
if (content) {
getActiveVotes(get(content, 'author'), get(content, 'permlink'))
if (route.params?.content) {
getActiveVotes(get(post, 'author'), get(post, 'permlink'))
.then((result) => {
result.sort((a, b) => b.rshares - a.rshares);
const _votes = parseActiveVotes({ ...content, active_votes: result });
setActiveVotes(_votes);
post.active_votes = parseActiveVotes({ ...post, active_votes: result });;
setPost({...post});
})
.catch(() => {});
}
}, [content]);
}, [route.params?.content]);
const _activeVotes = _cPost.active_votes.slice();
return (
<AccountListContainer data={activeVotes}>
<AccountListContainer data={_activeVotes}>
{({ data, filterResult, filterIndex, handleOnVotersDropdownSelect, handleSearch }) => (
<>
<BasicHeader
@ -72,7 +64,7 @@ const VotersScreen = ({ route }) => {
selectedOptionIndex={filterIndex}
onDropdownSelect={handleOnVotersDropdownSelect}
/>
<VotersDisplay votes={filterResult || data} createdAt={content.created} />
<VotersDisplay votes={filterResult || data} createdAt={post.created} />
</>
)}
</AccountListContainer>

View File

@ -1,20 +1,31 @@
import React, { useEffect, useRef } from 'react';
import { ActivityIndicator, RefreshControl, View } from 'react-native';
import React, { useRef, useState } from 'react';
import { ActivityIndicator, NativeScrollEvent, NativeSyntheticEvent, RefreshControl, View, FlatList } from 'react-native';
import { Comments, EmptyScreen, Header, PostOptionsModal } from '../../../components';
import styles from '../styles/wavesScreen.styles';
import { wavesQueries } from '../../../providers/queries';
import { useAppSelector } from '../../../hooks';
import WavesHeader from '../children/wavesHeader';
import { PostTypes } from '../../../constants/postTypes';
import ScrollTopPopup from '../../../components/tabbedPosts/view/scrollTopPopup';
import { debounce } from 'lodash';
const SCROLL_POPUP_THRESHOLD = 5000;
const WavesScreen = () => {
//refs
const postOptionsModalRef = useRef<any>(null);
const postsListRef = useRef<FlatList>();
const blockPopupRef = useRef(false);
const scrollOffsetRef = useRef(0);
const wavesQuery = wavesQueries.useWavesQuery('ecency.waves');
const isDarkTheme = useAppSelector(state => state.application.isDarkTheme)
const [enableScrollTop, setEnableScrollTop] = useState(false);
const _fetchData = ({ refresh }: { refresh?: boolean }) => {
if (refresh) {
@ -24,6 +35,40 @@ const WavesScreen = () => {
}
}
//scrolls to top, blocks scroll popup for 2 seconds to reappear after scroll
const _scrollTop = () => {
if (postsListRef.current) {
postsListRef.current.scrollToOffset({offset:0});
setEnableScrollTop(false);
scrollPopupDebouce.cancel();
blockPopupRef.current = true;
setTimeout(() => {
blockPopupRef.current = false;
}, 2000);
}
}
//makes sure pop do not reappear while scrolling up
const scrollPopupDebouce = debounce(
(value) => {
setEnableScrollTop(value);
},
500,
{ leading: true },
);
//calback to calculate with to display scroll to popup
const _onScroll = (event: NativeSyntheticEvent<NativeScrollEvent>) => {
let currentOffset = event.nativeEvent.contentOffset.y;
let scrollUp = currentOffset < scrollOffsetRef.current;
scrollOffsetRef.current = currentOffset;
if (scrollUp && !blockPopupRef.current && currentOffset > SCROLL_POPUP_THRESHOLD) {
scrollPopupDebouce(true);
}
};
const _handleOnOptionsPress = (content: any) => {
if (postOptionsModalRef.current) {
@ -47,11 +92,13 @@ const WavesScreen = () => {
<View style={{ flex: 1 }}>
<Comments
postType={PostTypes.WAVE}
comments={_data}
handleOnOptionsPress={_handleOnOptionsPress}
flatListProps={{
ref: postsListRef,
onEndReached: _fetchData,
onScroll: () => { },
onScroll: _onScroll,
ListEmptyComponent: _renderListEmpty,
ListFooterComponent: _renderListFooter,
ListHeaderComponent: _renderListHeader,
@ -67,8 +114,18 @@ const WavesScreen = () => {
),
}}
/>
<ScrollTopPopup
popupAvatars={[]}
enableScrollTop={enableScrollTop}
onPress={_scrollTop}
onClose={() => {
setEnableScrollTop(false);
}}
/>
</View>
<PostOptionsModal ref={postOptionsModalRef} />
</View>

View File

@ -3,6 +3,7 @@ import { Image } from 'react-native';
import { diff_match_patch as diffMatchPatch } from 'diff-match-patch';
import VersionNumber from 'react-native-version-number';
import MimeTypes from 'mime-types';
import { PostTypes } from '../constants/postTypes';
export const getWordsCount = (text) =>
text && typeof text === 'string' ? text.replace(/^\s+|\s+$/g, '').split(/\s+/).length : 0;
@ -80,8 +81,8 @@ export const extractWordAtIndex = (text: string, index: number) => {
return word;
};
export const generateReplyPermlink = (toAuthor) => {
if (!toAuthor) {
export const generateUniquePermlink = (prefix) => {
if (!prefix) {
return '';
}
@ -93,7 +94,7 @@ export const generateReplyPermlink = (toAuthor) => {
.getSeconds()
.toString()}${t.getMilliseconds().toString()}z`;
return `re-${toAuthor.replace(/\./g, '')}-${timeFormat}`;
return `${prefix}-${timeFormat}`;
};
export const makeOptions = (postObj) => {
@ -214,10 +215,12 @@ export const extractMetadata = async ({
body,
thumbUrl,
fetchRatios,
postType,
}: {
body: string;
thumbUrl?: string;
fetchRatios?: boolean;
postType?: PostTypes;
}) => {
// NOTE: keepting regex to extract usernames as reference for later usage if any
// const userReg = /(^|\s)(@[a-z][-.a-z\d]+[a-z\d])/gim;
@ -254,6 +257,10 @@ export const extractMetadata = async ({
);
}
//setting post type, primary usecase for separating waves from other posts
out.type = postType || PostTypes.POST
return out;
};

View File

@ -1,6 +1,6 @@
import isEmpty from 'lodash/isEmpty';
import forEach from 'lodash/forEach';
import { get } from 'lodash';
import { get, isArray } from 'lodash';
import { Platform } from 'react-native';
import { postBodySummary, renderPostBody, catchPostImage } from '@ecency/render-helper';
import FastImage from 'react-native-fast-image';
@ -10,6 +10,7 @@ import parseAsset from './parseAsset';
import { getResizedAvatar } from './image';
import { parseReputation } from './user';
import { CacheStatus } from '../redux/reducers/cacheReducer';
import { calculateVoteReward, getEstimatedAmount } from './vote';
const webp = Platform.OS !== 'ios';
@ -324,24 +325,34 @@ export const injectVoteCache = (post, voteCache) => {
//if vote do not already exist
if (_voteIndex < 0 && voteCache.status !== CacheStatus.DELETED) {
post.total_payout += voteCache.amount * (voteCache.isDownvote ? -1 : 1);
post.active_votes = [
...post.active_votes,
{
voter: voteCache.voter,
rshares: voteCache.isDownvote ? -1000 : 1000,
},
];
//calculate updated totalRShares and send to post
const _totalRShares = post.active_votes.reduce(
(accumulator: number, item: any) => accumulator + parseFloat(item.rshares),
voteCache.rshares);
const _newVote = parseVote(voteCache, post, _totalRShares);
post.active_votes = [...post.active_votes, _newVote];
}
//if vote already exist
else {
//TODO: caluclate estimate amount from existing rshares and subtract from total_payout
//TOOD: calcualte real rshares
post.active_votes[_voteIndex].rshares = !voteCache.sliderValue
? 0 : voteCache.isDownvote
? -1000 : 1000;
const _vote = post.active_votes[_voteIndex];
//get older and new reward for the vote
const _oldReward = calculateVoteReward(_vote.rshares, post);
//update total payout
const _voteAmount = voteCache.amount * (voteCache.isDownvote ? -1 : 1);
post.total_payout += _voteAmount - _oldReward
//update vote entry
_vote.rshares = voteCache.rshares
_vote.percent100 = _vote.percent && voteCache.percent / 100
post.active_votes[_voteIndex] = _vote;
post.active_votes = [...post.active_votes];
}
}
@ -363,6 +374,8 @@ export const isVoted = async (activeVotes, currentUserName) => {
return false;
};
export const isDownVoted = async (activeVotes, currentUserName) => {
if (!currentUserName) {
return false;
@ -376,28 +389,29 @@ export const isDownVoted = async (activeVotes, currentUserName) => {
return false;
};
export const parseActiveVotes = (post) => {
const totalPayout =
post.total_payout ||
parseFloat(post.pending_payout_value) +
parseFloat(post.total_payout_value) +
parseFloat(post.curator_payout_value);
const voteRshares = post.active_votes.reduce((a, b) => a + parseFloat(b.rshares), 0);
const ratio = totalPayout / voteRshares || 0;
const _totalRShares = post.active_votes.reduce((a, b) => a + parseFloat(b.rshares), 0);
if (!isEmpty(post.active_votes)) {
forEach(post.active_votes, (value) => {
value.reward = (value.rshares * ratio).toFixed(3);
value.percent /= 100;
value.is_down_vote = Math.sign(value.percent) < 0;
value.avatar = getResizedAvatar(get(value, 'voter'));
});
if (isArray(post.active_votes)) {
post.active_votes = post.active_votes.map((vote) => parseVote(vote, post, _totalRShares))
}
return post.active_votes;
};
export const parseVote = (activeVote: any, post: any, _totalRShares?: number) => {
activeVote.reward = calculateVoteReward(activeVote.rshares, post, _totalRShares).toFixed(3);
activeVote.percent100 = activeVote.percent / 100;
activeVote.is_down_vote = Math.sign(activeVote.rshares) < 0;
activeVote.avatar = getResizedAvatar(activeVote.voter);
return activeVote;
}
const parseTags = (post: any) => {
if (post.json_metadata) {
const _tags = get(post.json_metadata, 'tags', []);

View File

@ -2,18 +2,14 @@ import parseToken from './parseToken';
import { GlobalProps } from '../redux/reducers/accountReducer';
import { votingPower } from '../providers/hive/dhive';
export const getEstimatedAmount = (account, globalProps: GlobalProps, sliderValue: number = 1) => {
const { fundRecentClaims, fundRewardBalance, base, quote } = globalProps;
const _votingPower: number = votingPower(account) * 100;
const vestingShares = parseToken(account.vesting_shares);
const receievedVestingShares = parseToken(account.received_vesting_shares);
const delegatedVestingShared = parseToken(account.delegated_vesting_shares);
const totalVests = vestingShares + receievedVestingShares - delegatedVestingShared;
// const totalVests = parseToken(account.post_voting_power);
const weight = sliderValue * 10000;
const hbdMedian = base / quote;
const voteEffectiveShares = calculateVoteRshares(totalVests, _votingPower, weight);
const weight = sliderValue * 10000;
const voteEffectiveShares = calculateEstimatedRShares(account, weight)
const voteValue = (voteEffectiveShares / fundRecentClaims) * fundRewardBalance * hbdMedian;
const estimatedAmount = weight < 0 ? Math.min(voteValue * -1, 0) : Math.max(voteValue, 0);
@ -30,6 +26,20 @@ export const getEstimatedAmount = (account, globalProps: GlobalProps, sliderValu
};
export const calculateEstimatedRShares = (account:any, weight: number = 10000) => {
const _votingPower: number = votingPower(account) * 100;
const vestingShares = parseToken(account.vesting_shares);
const receievedVestingShares = parseToken(account.received_vesting_shares);
const delegatedVestingShared = parseToken(account.delegated_vesting_shares);
const totalVests = vestingShares + receievedVestingShares - delegatedVestingShared;
return calculateVoteRshares(totalVests, _votingPower, weight);
}
/*
* Changes in HF25
* Full 'rshares' always added to the post.
@ -44,3 +54,30 @@ export const calculateVoteRshares = (userEffectiveVests: number, vp = 10000, wei
const voteRshares = userVestingShares * (userVotingPower / 10000) * 0.02;
return voteRshares;
};
export const calculateVoteReward = (voteRShares:number, post:any, totalRshares?:number) => {
if(!voteRShares){
return 0
}
const totalPayout =
post.total_payout ||
parseFloat(post.pending_payout_value) || 0+
parseFloat(post.total_payout_value) || 0 +
parseFloat(post.curator_payout_value) || 0;
if(totalRshares === undefined){
totalRshares = post.active_votes.length
? post.active_votes.reduce((accumulator:number, item:any) => accumulator + parseFloat(item.rshares), 0)
: voteRShares;
}
const ratio = totalPayout / totalRshares || 0;
return voteRShares * ratio;
}