Merge branch 'master' into feature/feedback-2

This commit is contained in:
uğur erdal 2019-03-18 21:43:26 +03:00 committed by GitHub
commit 1d7c52e8ed
98 changed files with 299 additions and 134 deletions

View File

@ -9,3 +9,4 @@ PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
USER_HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT)/FLAnimatedImage/FLAnimatedImage

View File

@ -9,3 +9,4 @@ PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
USER_HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT)/FLAnimatedImage/FLAnimatedImage

View File

@ -8,3 +8,4 @@ PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
USER_HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT)/FLAnimatedImage/FLAnimatedImage

View File

@ -8,3 +8,4 @@ PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
USER_HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT)/FLAnimatedImage/FLAnimatedImage

View File

@ -124,7 +124,6 @@ export default class TagAreaView extends Component {
}
autoCapitalize="none"
onFocus={() => this.setState({ activeChip: i })}
{...this.props}
/>
),
)}

View File

@ -44,12 +44,12 @@ export default class TitleAreaView extends Component {
render() {
const { intl, isPreviewActive, autoFocus } = this.props;
const { text } = this.state;
const { text, height } = this.state;
return (
<View style={globalStyles.containerHorizontal16}>
<TextInput
style={[styles.textInput, { height: Math.max(35, this.state.height) }]}
style={[styles.textInput, { height: Math.max(35, height) }]}
placeholderTextColor="#c1c5c7"
editable={!isPreviewActive}
maxLength={250}

View File

@ -219,7 +219,6 @@ export default class MarkdownEditorView extends Component {
style={styles.textWrapper}
underlineColorAndroid="transparent"
value={text}
{...this.props}
/>
) : (
this._renderPreview()

View File

@ -34,13 +34,15 @@ class PostDisplayContainer extends Component {
// Component Functions
_handleOnVotersPress = (activeVotes) => {
const { navigation } = this.props;
const { navigation, post } = this.props;
navigation.navigate({
routeName: ROUTES.SCREENS.VOTERS,
params: {
activeVotes,
},
// TODO: make unic
key: post.permlink + Math.random(),
});
};

View File

@ -1,5 +1,6 @@
import React, { PureComponent } from 'react';
import { withNavigation } from 'react-navigation';
import { connect } from 'react-redux';
// Services and Actions
import { search } from '../../../providers/esteem/esteem';
@ -45,6 +46,7 @@ class SearchModalContainer extends PureComponent {
const users = res.map(item => ({
image: `https://steemitimages.com/u/${item}/avatar/small`,
text: item,
...item,
}));
this.setState({ searchResults: { type: 'user', data: users } });
});
@ -52,6 +54,7 @@ class SearchModalContainer extends PureComponent {
getTrendingTags(text.substr(1)).then((res) => {
const tags = res.map(item => ({
text: `#${item.name}`,
...item,
}));
this.setState({ searchResults: { type: 'tag', data: tags } });
@ -63,6 +66,7 @@ class SearchModalContainer extends PureComponent {
.map(item => ({
image: item.img_url || `https://steemitimages.com/u/${item.author}/avatar/small`,
text: item.title,
...item,
}));
this.setState({ searchResults: { type: 'content', data: res.results } });
});
@ -71,7 +75,7 @@ class SearchModalContainer extends PureComponent {
};
_handleOnPressListItem = (type, item) => {
const { navigation, handleOnClose } = this.props;
const { navigation, handleOnClose, username } = this.props;
let routeName = null;
let params = null;
let key = null;
@ -81,7 +85,7 @@ class SearchModalContainer extends PureComponent {
switch (type) {
case 'user':
routeName = ROUTES.SCREENS.PROFILE;
routeName = item.text === username ? ROUTES.TABBAR.PROFILE : ROUTES.SCREENS.PROFILE;
params = {
username: item.text,
};
@ -118,6 +122,7 @@ class SearchModalContainer extends PureComponent {
render() {
const { searchResults } = this.state;
const { handleOnClose, isOpen, placeholder } = this.props;
return (
<SearchModalView
searchResults={searchResults}
@ -132,4 +137,8 @@ class SearchModalContainer extends PureComponent {
}
}
export default withNavigation(SearchModalContainer);
const mapStateToProps = state => ({
username: state.account.currentAccount.name,
});
export default connect(mapStateToProps)(withNavigation(SearchModalContainer));

View File

@ -67,7 +67,7 @@ export default EStyleSheet.create({
borderColor: '$primaryGray',
},
searchItemText: {
color: '$white',
color: '$pureWhite',
marginLeft: 10,
},
});

View File

@ -1,6 +1,6 @@
import React, { PureComponent } from 'react';
import {
View, Text, FlatList, TouchableHighlight, SafeAreaView,
View, Text, FlatList, TouchableOpacity, SafeAreaView,
} from 'react-native';
import FastImage from 'react-native-fast-image';
@ -58,7 +58,8 @@ class SearchModalView extends PureComponent {
data={searchResults.data}
showsVerticalScrollIndicator={false}
renderItem={({ item }) => (
<TouchableHighlight onPress={() => handleOnPressListItem(searchResults.type, item)}>
// TODO: Make it quick ui component
<TouchableOpacity onPress={() => handleOnPressListItem(searchResults.type, item)}>
<View style={styles.searhItems}>
<View style={styles.searchItemImageWrapper}>
{item.image && (
@ -74,7 +75,7 @@ class SearchModalView extends PureComponent {
{item.text && <Text style={styles.searchItemText}>{item.text}</Text>}
</View>
</View>
</TouchableHighlight>
</TouchableOpacity>
)}
keyExtractor={(post, index) => index.toString()}
removeClippedSubviews

View File

@ -1,4 +1,8 @@
import React, { PureComponent } from 'react';
import { withNavigation } from 'react-navigation';
// Constants
import ROUTES from '../../../constants/routeNames';
// Component
import VotersDisplayView from '../view/votersDisplayView';
@ -15,11 +19,23 @@ class VotersDisplayContainer extends PureComponent {
this.state = {};
}
_handleOnUserPress = (username) => {
const { navigation } = this.props;
navigation.navigate({
routeName: ROUTES.SCREENS.PROFILE,
params: {
username,
},
key: username,
});
};
render() {
const { votes } = this.props;
return <VotersDisplayView votes={votes} />;
return <VotersDisplayView handleOnUserPress={this._handleOnUserPress} votes={votes} />;
}
}
export default VotersDisplayContainer;
export default withNavigation(VotersDisplayContainer);

View File

@ -19,7 +19,7 @@ class VotersDisplayView extends PureComponent {
// Component Functions
_renderItem = (item, index) => {
const { intl } = this.props;
const { handleOnUserPress } = this.props;
const value = `$ ${item.value}`;
const percent = `${item.percent}%`;
@ -27,11 +27,12 @@ class VotersDisplayView extends PureComponent {
<UserListItem
index={index}
username={item.voter}
// description={intl.formatRelative(item.time)}
description={getTimeFromNow(item.time)}
isHasRightItem
isRightColor={item.is_down_vote}
rightText={value}
handleOnPress={() => handleOnUserPress(item.voter)}
isClickable
subRightText={percent}
/>
);

View File

@ -66,6 +66,7 @@
"pincode": "Kode PIN",
"reset": "Atôe ulang",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "رمز PIN",
"reset": "إعادة",
"nsfw_content": "محتوى NSFW",
"default_footer": "تذييل إفتراضي",
"nsfw": {
"always_show": "عرض دوماً",
"always_hide": "إخفاء دوماً",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -65,11 +65,12 @@
"push_notification": "Push-Benachrichtigung",
"pincode": "Pincode",
"reset": "Zurücksetzen",
"nsfw_content": "NSFW Content",
"nsfw_content": "NSFW Inhalt",
"default_footer": "Standard Fußzeile",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",
"always_warn": "Always warn"
"always_show": "Immer anzeigen",
"always_hide": "Immer verstecken",
"always_warn": "Immer warnen"
}
},
"voters": {
@ -86,7 +87,7 @@
"cancel": "Abbrechen",
"login": "LOGIN",
"steemconnect_description": "Wenn du dein Passwort nicht verschlüsselt auf deinem Gerät gespeichert halten möchtest, kannst du Steemconnect verwenden.",
"steemconnect_fee_description": "Steemconnect may charge some fees from your reward transactions"
"steemconnect_fee_description": "Steemconnect kann einige Gebühren für Ihre Reward-Transaktionen berechnen"
},
"home": {
"feed": "Feed",
@ -144,9 +145,9 @@
"warning": "Warnung",
"invalid_pincode": "Ungültiger PIN-Code, bitte überprüfen und erneut versuchen.",
"remove_alert": "Bist du sicher, dass du es entfernen möchtest?",
"clear_alert": "Are you sure you want to clear?",
"clear_user_alert": "Are you sure you want to clear all user data?",
"clear": "Clear",
"clear_alert": "Sind sie sicher, das sie alles löschen wollen?",
"clear_user_alert": "Wollen sie wirklich alle Benutzerdaten löschen?",
"clear": "Löschen",
"cancel": "Abbrechen",
"delete": "Entfernen",
"copied": "Kopiert!",
@ -174,7 +175,7 @@
"empty_list": "Keine Einträge vorhanden",
"deleted": "Lesezeichen entfernt",
"search": "In Lesezeichen suchen",
"added": "Added to bookmarks",
"added": "Zu deinen Lesezeichen hinzugefügt",
"add": "Neues Lesezeichen"
},
"favorites": {
@ -209,13 +210,13 @@
"no_existing_post": "Kein vorhandener Beitrag"
},
"search": {
"posts": "Posts",
"comments": "Comments"
"posts": "Beiträge",
"comments": "Kommentare"
},
"comment_filter": {
"trending": "trending",
"reputation": "reputation",
"votes": "votes",
"age": "age"
"trending": "im Trend",
"reputation": "ruf",
"votes": "stimmen",
"age": "alter"
}
}

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -68,6 +68,7 @@
"nsfw_content": "NSFW Content",
"send_feedback": "Send Feedback",
"send": "Send",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reiniciar",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "راه اندازی مجدد",
"nsfw_content": "محتوای نامناسب برای کودکان",
"default_footer": "پانویس پیش فرض",
"nsfw": {
"always_show": "همیشه نمایش بده",
"always_hide": "همیشه پنهان باشد",

View File

@ -66,6 +66,7 @@
"pincode": "PIN-koodi",
"reset": "Nollaa",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Réinitialiser",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -8,7 +8,7 @@
"transfer_to_vesting": "העבר לVesting",
"transfer_from_savings": "העבר מחסכונות",
"withdraw_vesting": "המרת כוח הסטים ליתרה נזילה",
"fill_order": "מלא בקשה"
"fill_order": "מלא הזמנה"
},
"notification": {
"vote": "אוהב\\ת את הפוסט שלך",
@ -18,8 +18,8 @@
"follow": "עקב\\ה אחרייך",
"unfollow": "הפסיק\\ה לעקוב אחרייך",
"ignore": "התעלם\\ה ממך",
"reblog": "העלה\\תה את הפוסט שלך לבלוג שלו\\ה",
"transfer": "transfered steem",
"reblog": "שיתף\/ה את הפוסט שלך",
"transfer": "סטים מועבר",
"comingsoon": "מאפיין לוח התוצאות יוצא להשקה בקרוב!",
"notification": "התראות",
"leaderboard": "לוח תוצאות",
@ -58,14 +58,15 @@
},
"settings": {
"settings": "הגדרות",
"currency": "יתרה",
"currency": "יתרת מטבע",
"language": "שפה",
"server": "שרת",
"dark_theme": "ערכת נושא כהה",
"push_notification": ודעות דחיפה",
"push_notification": תראות דחיפה",
"pincode": "קוד PIN",
"reset": "אתחל",
"nsfw_content": "תוכן NSFW",
"default_footer": "ברירת מחדל תחתונה",
"nsfw": {
"always_show": "הצג תמיד",
"always_hide": "הסתר תמיד",
@ -74,7 +75,7 @@
},
"voters": {
"voters_info": "פרטי המצביעים",
"no_user": "לא נמצא שום משתמש\\ת."
"no_user": "לא נמצא משתמש\\ת."
},
"login": {
"signin": "התחבר\\י",
@ -96,7 +97,7 @@
"profile": "פרופיל",
"bookmarks": "סימניות",
"favorites": "מועדפים",
"drafts": "טיוטה",
"drafts": "טיוטות",
"schedules": "לוחות זמנים",
"gallery": "גלריה",
"settings": "הגדרות",
@ -137,15 +138,15 @@
"claim_reward_balance_ok": "תגמול יתרה נתקבלה",
"fail": "נכשל!",
"success_shared": "הפוסט שלך שותף בהצלחה",
"permission_denied": "בקשה נדחתה",
"permission_text": "אנא, שנה את ההרשאות באפליקציית הeSteem, דרך ההגדרות בטלפון.",
"permission_denied": "הרשאה נדחתה",
"permission_text": "אנא, שנה את ההרשאות לאפליקציית ה eSteem, דרך ההגדרות בטלפון.",
"success_rebloged": "שותף!",
"already_rebloged": "כבר שיתפת!",
"warning": "אזהרה",
"invalid_pincode": "קוד PIN לא תקין, אנא בדוק ונסה שנית.",
"remove_alert": "האם בוודאות ברצונך להסיר?",
"clear_alert": "האם את\\ה בטוח\\ה שברצונך למחוק?",
"clear_user_alert": "Are you sure you want to clear all user data?",
"clear_user_alert": "האם את\/ה בטוח\/ה שברצונך למחוק את כל נתוני המשתמש?",
"clear": "ריק",
"cancel": "בטל\\י",
"delete": "מחק\\י",
@ -156,7 +157,7 @@
"reblog_alert": "האם את\\ה בטוח\/ה רוצה לשתף ?"
},
"drafts": {
"title": "טיוטה",
"title": "טיוטות",
"load_error": "לא ניתן לעלות טיוטה",
"empty_list": "אין כאן מידע",
"deleted": "טיוטה נמחקה"

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "पुनः नियोजन",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Resetiraj",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "PIN kód",
"reset": "Visszaállítás",
"nsfw_content": "NSFW tartalom",
"default_footer": "Alapértelmezett lábléc",
"nsfw": {
"always_show": "Mindig látszik",
"always_hide": "Mindig rejtve",

View File

@ -66,6 +66,7 @@
"pincode": "PIN code",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Kode PIN",
"reset": "Setel Ulang",
"nsfw_content": "Konten NSFW",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Selalu Tampilkan",
"always_hide": "Selalu menyembunyikan",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Resetta",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "PIN 코드",
"reset": "초기화",
"nsfw_content": "NSFW 콘텐츠",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "항상 보여주기",
"always_hide": "항상 숨기기",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Atstatyti",
"nsfw_content": "NSFW Turinys",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Visada rodyti",
"always_hide": "Visada paslėpti",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Tetapkan semula",
"nsfw_content": "Kandungan NSFW",
"default_footer": "Ranka Pendirian",
"nsfw": {
"always_show": "Benarkan",
"always_hide": "Tutup",
@ -213,9 +214,9 @@
"comments": "Komen"
},
"comment_filter": {
"trending": "trending",
"reputation": "reputation",
"votes": "votes",
"age": "age"
"trending": "tending",
"reputation": "reputasi",
"votes": "vote",
"age": "usia"
}
}

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "PIN code",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Código PIN",
"reset": "Reiniciar",
"nsfw_content": "Conteúdo NSFW",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Mostrar sempre",
"always_hide": "Ocultar sempre",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Resetare",
"nsfw_content": "Conținut NSFW",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Afisează întotdeauna",
"always_hide": "Ascunde întotdeauna",

View File

@ -66,6 +66,7 @@
"pincode": "Пинкод",
"reset": "Сбросить",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "PIN code",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -65,7 +65,8 @@
"push_notification": "Obaveštenja",
"pincode": "Pincode",
"reset": "Resetuj",
"nsfw_content": "NSFW Content",
"nsfw_content": "NSFW sadržaj",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",
@ -185,8 +186,8 @@
},
"auth": {
"invalid_pin": "Invalid pin code, please check and try again",
"invalid_username": "Invalid username, please check and try again",
"already_logged": "You are already logged in, please try to add another account",
"invalid_username": "Pogrešno korisničko ime, molimo proverite i pokušajte ponovo",
"already_logged": "Već ste prijavljeni, molimo pokušajte da dodate drugi nalog",
"invalid_credentials": "Nevažeća ovlašćenja, molimo proverite i pokušajte ponovo",
"unknow_error": "Nepoznata greška, molimo kontaktirajte nas na support@esteem.app"
},
@ -202,20 +203,20 @@
"reblog": "podeli",
"reply": "odgovori",
"share": "podeli",
"bookmarks": "add to bookmarks"
"bookmarks": "dodaj u obeleživače"
},
"deep_link": {
"no_existing_user": "No existing user",
"no_existing_post": "No existing post"
},
"search": {
"posts": "Posts",
"comments": "Comments"
"posts": "Postovi",
"comments": "Komentari"
},
"comment_filter": {
"trending": "trending",
"reputation": "reputation",
"votes": "votes",
"age": "age"
"trending": "popularnosti",
"reputation": "reputaciji",
"votes": "glasovi",
"age": "starost"
}
}

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pinkod",
"reset": "Sifirla",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "PIN code",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "PIN code",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Reset",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Mã PIN",
"reset": "Thiết lập lại",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "Tun bere",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "Pincode",
"reset": "重置",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -66,6 +66,7 @@
"pincode": "PIN 碼",
"reset": "重置",
"nsfw_content": "NSFW Content",
"default_footer": "Default Footer",
"nsfw": {
"always_show": "Always show",
"always_hide": "Always hide",

View File

@ -3,7 +3,7 @@ import { default as ROUTES } from './routeNames';
const authMenuItems = [
{
name: 'Profile',
route: 'ProfileTabbar',
route: ROUTES.TABBAR.PROFILE,
icon: 'perm-identity',
id: 'profile',
},

View File

@ -45,13 +45,14 @@ const draftSchema = {
const settingsSchema = {
name: SETTINGS_SCHEMA,
properties: {
language: { type: 'string', default: null },
isDarkTheme: { type: 'bool', default: false },
currency: { type: 'string', default: null },
isDarkTheme: { type: 'bool', default: false },
isDefaultFooter: { type: 'bool', default: true },
language: { type: 'string', default: null },
notification: { type: 'bool', default: true },
nsfw: { type: 'string', default: null },
server: { type: 'string', default: null },
upvotePercent: { type: 'string', default: null },
nsfw: { type: 'string', default: null },
},
};
@ -358,6 +359,17 @@ export const setTheme = isDarkTheme => new Promise((resolve, reject) => {
}
});
export const setDefaultFooter = isDefaultFooter => new Promise((resolve, reject) => {
try {
realm.write(() => {
settings[0].isDefaultFooter = isDefaultFooter;
resolve(true);
});
} catch (error) {
reject(error);
}
});
export const setUpvotePercent = percent => new Promise((resolve, reject) => {
try {
realm.write(() => {

View File

@ -5,6 +5,7 @@ import {
CLOSE_PIN_CODE_MODAL,
IS_CONNECTED,
IS_DARK_THEME,
IS_DEFAULT_FOOTER,
IS_LOGIN_DONE,
IS_NOTIFICATION_OPEN,
LOGIN,
@ -14,8 +15,8 @@ import {
SET_API,
SET_CURRENCY,
SET_LANGUAGE,
SET_UPVOTE_PERCENT,
SET_NSFW,
SET_UPVOTE_PERCENT,
} from '../constants/constants';
export const login = payload => ({
@ -83,6 +84,11 @@ export const setNsfw = payload => ({
type: SET_NSFW,
});
export const isDefaultFooter = payload => ({
payload,
type: IS_DEFAULT_FOOTER,
});
/**
* MW
*/

View File

@ -11,6 +11,7 @@ export const IS_DARK_THEME = 'IS_DARK_THEME';
export const IS_LOGGED_IN = 'IS_LOGGED_IN';
export const IS_LOGIN_DONE = 'IS_LOGIN_DONE';
export const IS_NOTIFICATION_OPEN = 'IS_NOTIFICATION_OPEN';
export const IS_DEFAULT_FOOTER = 'IS_DEFAULT_FOOTER';
export const LOGIN = 'LOGIN';
export const LOGOUT = 'LOGOUT';
export const LOGOUT_DONE = 'LOGOUT_DONE';

View File

@ -3,6 +3,7 @@ import {
CLOSE_PIN_CODE_MODAL,
IS_CONNECTED,
IS_DARK_THEME,
IS_DEFAULT_FOOTER,
IS_LOGIN_DONE,
IS_NOTIFICATION_OPEN,
LOGIN,
@ -12,8 +13,8 @@ import {
SET_API,
SET_CURRENCY,
SET_LANGUAGE,
SET_UPVOTE_PERCENT,
SET_NSFW,
SET_UPVOTE_PERCENT,
} from '../constants/constants';
const initialState = {
@ -26,6 +27,7 @@ const initialState = {
isActive: false,
isConnected: true, // internet connectivity
isDarkTheme: false,
isDefaultFooter: true,
isLoggedIn: false, // Has any logged in user.
isLoginDone: false,
isLogingOut: false,
@ -107,6 +109,10 @@ export default function (state = initialState, action) {
return Object.assign({}, state, {
nsfw: action.payload,
});
case IS_DEFAULT_FOOTER:
return Object.assign({}, state, {
isDefaultFooter: action.payload,
});
default:
return state;
}

View File

@ -39,6 +39,7 @@ import {
setAuthStatus,
removeSCAccount,
setExistUser,
setDefaultFooter,
} from '../../../realm/realm';
import { getUser } from '../../../providers/steem/dsteem';
import { setPushToken } from '../../../providers/esteem/esteem';
@ -66,6 +67,7 @@ import {
setLanguage,
setUpvotePercent,
setNsfw,
isDefaultFooter,
} from '../../../redux/actions/applicationActions';
// Container
@ -247,6 +249,7 @@ class ApplicationContainer extends Component {
if (response.language !== '') dispatch(setLanguage(response.language));
if (response.server !== '') dispatch(setApi(response.server));
if (response.upvotePercent !== '') dispatch(setUpvotePercent(Number(response.upvotePercent)));
if (response.isDefaultFooter !== '') dispatch(isDefaultFooter(response.isDefaultFooter));
if (response.notification !== '') {
dispatch(isNotificationOpen(response.notification));
Push.setEnabled(response.notification);

View File

@ -293,7 +293,7 @@ class EditorContainer extends Component {
_submitPost = async (fields) => {
const {
navigation, currentAccount, pinCode, intl,
navigation, currentAccount, pinCode, intl, isDefaultFooter,
} = this.props;
if (currentAccount) {
@ -533,9 +533,10 @@ class EditorContainer extends Component {
}
const mapStateToProps = state => ({
currentAccount: state.account.currentAccount,
isDefaultFooter: state.account.isDefaultFooter,
isLoggedIn: state.application.isLoggedIn,
pinCode: state.account.pin,
currentAccount: state.account.currentAccount,
});
export default connect(mapStateToProps)(injectIntl(EditorContainer));

View File

@ -31,10 +31,8 @@ class NotificationContainer extends Component {
}
componentWillReceiveProps(nextProps) {
if (nextProps.activeBottomTab === ROUTES.TABBAR.NOTIFICATION) {
if (nextProps.username) {
this._getAvtivities();
}
if (nextProps.activeBottomTab === ROUTES.TABBAR.NOTIFICATION && nextProps.username) {
this._getAvtivities();
}
}
@ -60,30 +58,37 @@ class NotificationContainer extends Component {
_navigateToNotificationRoute = (data) => {
const { navigation, username, dispatch } = this.props;
let routeName;
let params;
let key;
markActivityAsRead(username, data.id).then((result) => {
dispatch(updateUnreadActivityCount(result.unread));
});
if (data.permlink) {
navigation.navigate({
routeName: ROUTES.SCREENS.POST,
params: {
author: data.author,
permlink: data.permlink,
isHasParentPost: data.parent_author && data.parent_permlink,
},
key: data.permlink,
});
} else {
navigation.navigate({
routeName: ROUTES.SCREENS.PROFILE,
params: {
username: data.follower,
},
key: data.follower,
});
routeName = ROUTES.SCREENS.POST;
key = data.permlink;
params = {
author: data.author,
permlink: data.permlink,
isHasParentPost: data.parent_author && data.parent_permlink,
};
} else if (data.type === 'follow') {
routeName = ROUTES.SCREENS.PROFILE;
key = data.follower;
params = {
username: data.follower,
};
} else if (data.type === 'transfer') {
routeName = ROUTES.TABBAR.PROFILE;
params = { isWalletTab: true };
}
navigation.navigate({
routeName,
params,
key,
});
};
_readAllNotification = () => {

View File

@ -8,23 +8,25 @@ import VersionNumber from 'react-native-version-number';
// Realm
import {
setTheme,
setLanguage as setLanguage2DB,
setCurrency as setCurrency2DB,
setServer,
setNotificationIsOpen,
getExistUser,
setCurrency as setCurrency2DB,
setDefaultFooter,
setLanguage as setLanguage2DB,
setNotificationIsOpen,
setNsfw as setNsfw2DB,
setServer,
setTheme,
} from '../../../realm/realm';
// Services and Actions
import {
setLanguage,
isNotificationOpen,
setCurrency,
setApi,
isDarkTheme,
isDefaultFooter,
isNotificationOpen,
openPinCodeModal,
setApi,
setCurrency,
setLanguage,
setNsfw,
} from '../../../redux/actions/applicationActions';
import { toastNotification } from '../../../redux/actions/uiAction';
@ -156,6 +158,11 @@ class SettingsContainer extends Component {
dispatch(isDarkTheme(action));
setTheme(action);
break;
case 'default_footer':
dispatch(isDefaultFooter(action));
// setDefaultFooter(action);
break;
default:
break;
}
@ -267,14 +274,15 @@ class SettingsContainer extends Component {
}
const mapStateToProps = state => ({
selectedLanguage: state.application.language,
isDarkTheme: state.application.isDarkTheme,
isDefaultFooter: state.application.isDefaultFooter,
isLoggedIn: state.application.isLoggedIn,
isNotificationSettingsOpen: state.application.isNotificationOpen,
nsfw: state.application.nsfw,
selectedApi: state.application.api,
selectedCurrency: state.application.currency,
isDarkTheme: state.application.isDarkTheme,
isNotificationSettingsOpen: state.application.isNotificationOpen,
isLoggedIn: state.application.isLoggedIn,
selectedLanguage: state.application.language,
username: state.account.currentAccount && state.account.currentAccount.name,
nsfw: state.application.nsfw,
});
export default connect(mapStateToProps)(SettingsContainer);

View File

@ -36,13 +36,14 @@ class SettingsScreen extends PureComponent {
handleOnChange,
intl,
isDarkTheme,
isDefaultFooter,
isLoggedIn,
isNotificationSettingsOpen,
nsfw,
selectedApi,
selectedCurrency,
selectedLanguage,
serverList,
nsfw,
} = this.props;
return (
@ -137,6 +138,24 @@ class SettingsScreen extends PureComponent {
})}
type="button"
actionType="feedback"
{/* <SettingsItem
title={intl.formatMessage({
id: 'settings.default_footer',
})}
type="toggle"
actionType="default_footer"
isOn={isDefaultFooter}
handleOnChange={handleOnChange}
/> */}
<SettingsItem
title={intl.formatMessage({
id: 'settings.pincode',
})}
text={intl.formatMessage({
id: 'settings.reset',
})}
type="button"
actionType="pincode"
handleOnChange={handleOnChange}
/>
</Fragment>

View File

@ -3,58 +3,57 @@ import { markDown2Html } from './markdownToHtml';
import { getPostSummary } from './formatter';
import { getReputation } from './reputation';
export const parsePosts = (posts, currentUserName, isSummary) => (!posts ? null : posts.map(post => parsePost(post, currentUserName, isSummary)));
export const parsePosts = (posts, currentUserName) => (!posts ? null : posts.map(post => parsePost(post, currentUserName)));
export const parsePost = (post, currentUserName, isSummary = false) => {
export const parsePost = (post, currentUserName) => {
if (!post) {
return null;
}
const _post = post;
_post.json_metadata = JSON.parse(post.json_metadata);
_post.image = postImage(post.json_metadata, post.body);
_post.vote_count = post.active_votes.length;
_post.author_reputation = getReputation(post.author_reputation);
_post.avatar = `https://steemitimages.com/u/${post.author}/avatar/small`;
_post.active_votes.sort((a, b) => b.rshares - a.rshares);
if (currentUserName === post.author) {
post.markdownBody = post.body;
}
_post.body = markDown2Html(post.body);
_post.summary = getPostSummary(post.body, 150);
_post.is_declined_payout = Number(parseFloat(post.max_accepted_payout)) === 0;
post.json_metadata = JSON.parse(post.json_metadata);
post.image = postImage(post.json_metadata, post.body);
post.vote_count = post.active_votes.length;
post.author_reputation = getReputation(post.author_reputation);
post.avatar = `https://steemitimages.com/u/${post.author}/avatar/small`;
post.active_votes.sort((a, b) => b.rshares - a.rshares);
post.body = markDown2Html(post.body);
post.summary = getPostSummary(post.body, 150);
post.is_declined_payout = Number(parseFloat(post.max_accepted_payout)) === 0;
if (currentUserName) {
_post.is_voted = isVoted(_post.active_votes, currentUserName);
post.is_voted = isVoted(post.active_votes, currentUserName);
} else {
_post.is_voted = false;
post.is_voted = false;
}
if (currentUserName === _post.author) {
_post.markdownBody = post.body;
}
const totalPayout = parseFloat(post.pending_payout_value)
+ parseFloat(post.total_payout_value)
+ parseFloat(post.curator_payout_value);
const totalPayout = parseFloat(_post.pending_payout_value)
+ parseFloat(_post.total_payout_value)
+ parseFloat(_post.curator_payout_value);
post.total_payout = totalPayout.toFixed(3);
_post.total_payout = totalPayout.toFixed(3);
const voteRshares = _post.active_votes.reduce((a, b) => a + parseFloat(b.rshares), 0);
const voteRshares = post.active_votes.reduce((a, b) => a + parseFloat(b.rshares), 0);
const ratio = totalPayout / voteRshares;
if (_post.active_votes && _post.active_votes.length > 0) {
for (const i in _post.active_votes) {
_post.vote_perecent = post.active_votes[i].voter === currentUserName ? post.active_votes[i].percent : null;
_post.active_votes[i].value = (post.active_votes[i].rshares * ratio).toFixed(3);
_post.active_votes[i].reputation = getReputation(post.active_votes[i].reputation);
_post.active_votes[i].percent = post.active_votes[i].percent / 100;
_post.active_votes[i].is_down_vote = Math.sign(post.active_votes[i].percent) < 0;
_post.active_votes[i].avatar = `https://steemitimages.com/u/${
_post.active_votes[i].voter
if (post.active_votes && post.active_votes.length > 0) {
for (const i in post.active_votes) {
post.vote_perecent = post.active_votes[i].voter === currentUserName ? post.active_votes[i].percent : null;
post.active_votes[i].value = (post.active_votes[i].rshares * ratio).toFixed(3);
post.active_votes[i].reputation = getReputation(post.active_votes[i].reputation);
post.active_votes[i].percent = post.active_votes[i].percent / 100;
post.active_votes[i].is_down_vote = Math.sign(post.active_votes[i].percent) < 0;
post.active_votes[i].avatar = `https://steemitimages.com/u/${
post.active_votes[i].voter
}/avatar/small`;
}
}
return _post;
return post;
};
const isVoted = (activeVotes, currentUserName) => activeVotes.some(v => v.voter === currentUserName && v.percent > 0);