diff --git a/src/components/markdownEditor/view/markdownEditorView.js b/src/components/markdownEditor/view/markdownEditorView.js
index 068051686..38e57a5d1 100644
--- a/src/components/markdownEditor/view/markdownEditorView.js
+++ b/src/components/markdownEditor/view/markdownEditorView.js
@@ -58,6 +58,23 @@ export default class MarkdownEditorView extends Component {
}
}
+ componentDidUpdate(prevProps, prevState) {
+ const { text } = this.state;
+ const { isFormValid, handleIsFormValid } = this.props;
+
+ if (prevState.text !== text && !isFormValid) {
+ const nextText = text.replace(prevState.text, '');
+
+ if (nextText && nextText.length > 0) {
+ this._changeText(text);
+
+ if (handleIsFormValid) {
+ handleIsFormValid(text);
+ }
+ }
+ }
+ }
+
// Component functions
_changeText = (input) => {
const {
@@ -147,7 +164,7 @@ export default class MarkdownEditorView extends Component {
iconType="FontAwesome"
name="image"
/>
- {/*
+
this.ClearActionSheet.show()}
size={20}
@@ -155,7 +172,7 @@ export default class MarkdownEditorView extends Component {
iconType="FontAwesome"
name="trash"
/>
- */}
+
{/* TODO: After alpha */}
{/* (
-
-
-
- onChangeText(text)}
- placeholder={placeholder}
- placeholderTextColor="#c1c5c7"
- autoCapitalize="none"
- autoFocus={autoFocus}
- editable={editable}
- />
- handleOnModalClose()}
- />
-
+
+
+ onChangeText(text)}
+ placeholder={placeholder}
+ placeholderTextColor="#c1c5c7"
+ autoCapitalize="none"
+ autoFocus={autoFocus}
+ editable={editable}
+ />
+ handleOnModalClose()}
+ />
);
diff --git a/src/components/searchModal/view/searchModalStyles.js b/src/components/searchModal/view/searchModalStyles.js
index 21fd03675..94485094d 100644
--- a/src/components/searchModal/view/searchModalStyles.js
+++ b/src/components/searchModal/view/searchModalStyles.js
@@ -53,6 +53,12 @@ export default EStyleSheet.create({
flexDirection: 'row',
alignItems: 'center',
},
+ searchItemImageWrapper: {
+ flex: 1,
+ },
+ searchItemTextWrapper: {
+ flex: 7,
+ },
searchItemImage: {
width: 40,
height: 40,
diff --git a/src/components/searchModal/view/searchModalView.js b/src/components/searchModal/view/searchModalView.js
index e819a86b4..1a4772a5d 100644
--- a/src/components/searchModal/view/searchModalView.js
+++ b/src/components/searchModal/view/searchModalView.js
@@ -59,7 +59,7 @@ class SearchModalView extends PureComponent {
renderItem={({ item }) => (
handleOnPressListItem(searchResults.type, item)}>
-
+
{item.image && (
)}
-
+
{item.text && {item.text}}
diff --git a/src/config/locales/fa-IR.json b/src/config/locales/fa-IR.json
index 0a92d775d..7f6e37c6b 100644
--- a/src/config/locales/fa-IR.json
+++ b/src/config/locales/fa-IR.json
@@ -201,9 +201,9 @@
"no_existing_post": "پستی موجود نیست"
},
"comment_filter": {
- "trending": "trending",
- "reputation": "reputation",
- "votes": "votes",
- "age": "age"
+ "trending": "پرطرفدار",
+ "reputation": "شهرت",
+ "votes": "رأی ها",
+ "age": "سن"
}
}
diff --git a/src/config/locales/id-ID.json b/src/config/locales/id-ID.json
index 9c4474872..53e9a1267 100644
--- a/src/config/locales/id-ID.json
+++ b/src/config/locales/id-ID.json
@@ -79,7 +79,7 @@
"cancel": "batal",
"login": "MASUK",
"steemconnect_description": "Jika Anda tidak ingin menyimpan sandi Anda dienkripsi dan disimpan pada perangkat Anda, Anda dapat menggunakan Steemconnect.",
- "steemconnect_fee_description": "Steemconnect may charge some fees from your reward transactions"
+ "steemconnect_fee_description": "Steemconnect dapat membebankan beberapa biaya dari transaksi hadiah Anda"
},
"home": {
"feed": "Umpan",
@@ -201,9 +201,9 @@
"no_existing_post": "Tidak ada post yang ada"
},
"comment_filter": {
- "trending": "trending",
- "reputation": "reputation",
- "votes": "votes",
- "age": "age"
+ "trending": "Trending",
+ "reputation": "reputasi",
+ "votes": "berikan suara",
+ "age": "usia"
}
}
diff --git a/src/config/locales/index.js b/src/config/locales/index.js
index 62ec76350..ba1dadee1 100644
--- a/src/config/locales/index.js
+++ b/src/config/locales/index.js
@@ -6,6 +6,9 @@ export default {
'it-IT': require('./it-IT.json'),
'ru-RU': require('./ru-RU.json'),
'tr-TR': require('./tr-TR.json'),
+ 'ko-KR': require('./ko-KR.json'),
+ 'lt-LT': require('./lt-LT.json'),
+ 'pt-PT': require('./pt-PT.json'),
};
export const locales = [
@@ -16,4 +19,7 @@ export const locales = [
{ id: 'iT-IT', name: 'Italian' },
{ id: 'ru-RU', name: 'Русский' },
{ id: 'tr-TR', name: 'Türkçe' },
+ { id: 'ko-KR', name: 'Korean' },
+ { id: 'lt-LT', name: 'Lithuanian' },
+ { id: 'pt-PT', name: 'Porteguese' },
];
diff --git a/src/config/locales/tr-TR.json b/src/config/locales/tr-TR.json
index ad931b02c..51f5f21f9 100644
--- a/src/config/locales/tr-TR.json
+++ b/src/config/locales/tr-TR.json
@@ -79,7 +79,7 @@
"cancel": "geç",
"login": "GİRİŞ",
"steemconnect_description": "Eğer kullanıçı bilgilerini şifreli olarak tutulmasını istemiyorsanız Steemconnect ilede giriş yapabilirsiniz.",
- "steemconnect_fee_description": "Steemconnect may charge some fees from your reward transactions"
+ "steemconnect_fee_description": "Not: Steemconnect ödül işlemlerinde bazı ücretler alabilir"
},
"home": {
"feed": "Akış",
@@ -115,8 +115,8 @@
"reply_placeholder": "Yukarıdaki yazi hakkinda nasil bir cevap yazmak istersin?",
"publish": "Yayınla",
"reply": "Cevapla",
- "open_galery": "Open Galery",
- "capture_photo": "Capture a photo"
+ "open_galery": "Gariyi Aç",
+ "capture_photo": "Bir fotoğraf yakala"
},
"pincode": {
"enter_text": "Açmak için pin kodunu giriniz",
@@ -137,8 +137,8 @@
"warning": "Uyarı",
"invalid_pincode": "Geçersiz pin gözden geçirip yeniden deneyin.",
"remove_alert": "Kaldırmak istediğine emin misin ?",
- "clear_alert": "Are you sure you want to clear?",
- "clear": "Clear",
+ "clear_alert": "Silmek istediğinizden emin misiniz?",
+ "clear": "Temizle",
"cancel": "Vazgeç",
"delete": "Temizle",
"copied": "Kopyalandı",
@@ -166,7 +166,7 @@
"empty_list": "Burada hiçbir şey yok",
"deleted": "Yer işareti kaldırıldı",
"search": "Yer imlerinde ara",
- "added": "Added to bookmarks",
+ "added": "Yer imlerine eklendi",
"add": "Yerimlerine ekle"
},
"favorites": {
@@ -198,12 +198,12 @@
},
"deep_link": {
"no_existing_user": "Kullanici Bulunamadi",
- "no_existing_post": "Boyle bir icerik yok"
+ "no_existing_post": "Kullanici Bulunamadi"
},
"comment_filter": {
- "trending": "trending",
- "reputation": "reputation",
- "votes": "votes",
- "age": "age"
+ "trending": "öne çıkanlar",
+ "reputation": "itibar",
+ "votes": "oylar",
+ "age": "yaş"
}
}
diff --git a/src/constants/options/language.js b/src/constants/options/language.js
index c0327a432..1fe1d87c3 100644
--- a/src/constants/options/language.js
+++ b/src/constants/options/language.js
@@ -1,3 +1,23 @@
-export default ['Deutsche', 'English', 'Hungarian', 'Indonesian', 'Russian', 'Turkish'];
+export default [
+ 'Deutsche',
+ 'English',
+ 'Hungarian',
+ 'Indonesian',
+ 'Korean',
+ 'Lithuanian',
+ 'Porteguese',
+ 'Russian',
+ 'Turkish',
+];
-export const VALUE = ['de-DE', 'en-US', 'hu-HU', 'id-ID', 'ru-RU', 'tr-TR'];
+export const VALUE = [
+ 'de-DE',
+ 'en-US',
+ 'hu-HU',
+ 'id-ID',
+ 'ko-KR',
+ 'lt-LT',
+ 'pt-PT',
+ 'ru-RU',
+ 'tr-TR',
+];
diff --git a/src/screens/application/container/applicationContainer.js b/src/screens/application/container/applicationContainer.js
index 5c7706fe2..71f9242a5 100644
--- a/src/screens/application/container/applicationContainer.js
+++ b/src/screens/application/container/applicationContainer.js
@@ -10,7 +10,7 @@ import { NavigationActions } from 'react-navigation';
import { bindActionCreators } from 'redux';
import Push from 'appcenter-push';
-// Constants
+// Languages
import en from 'react-intl/locale-data/en';
import id from 'react-intl/locale-data/id';
import ru from 'react-intl/locale-data/ru';
@@ -18,7 +18,11 @@ import de from 'react-intl/locale-data/de';
import it from 'react-intl/locale-data/it';
import hu from 'react-intl/locale-data/hu';
import tr from 'react-intl/locale-data/tr';
+import ko from 'react-intl/locale-data/ko';
+import lt from 'react-intl/locale-data/lt';
+import pt from 'react-intl/locale-data/pt';
+// Constants
import AUTH_TYPE from '../../../constants/authType';
// Services
@@ -67,7 +71,7 @@ import {
import ApplicationScreen from '../screen/applicationScreen';
import { Launch } from '../..';
-addLocaleData([...en, ...ru, ...de, ...id, ...it, ...hu, ...tr]);
+addLocaleData([...en, ...ru, ...de, ...id, ...it, ...hu, ...tr, ...ko, ...pt, ...lt]);
class ApplicationContainer extends Component {
constructor() {
diff --git a/src/screens/bookmarks/screen/bookmarksScreen.js b/src/screens/bookmarks/screen/bookmarksScreen.js
index a087d5809..e73fc77c5 100644
--- a/src/screens/bookmarks/screen/bookmarksScreen.js
+++ b/src/screens/bookmarks/screen/bookmarksScreen.js
@@ -50,7 +50,7 @@ class BookmarksScreen extends Component {
index={index}
isClickable
text={text}
- username={item.author}
+ username={isFavorites ? item.account : item.author}
/>
);
}
diff --git a/src/screens/editor/screen/editorScreen.js b/src/screens/editor/screen/editorScreen.js
index fdffb7f40..e29d39404 100644
--- a/src/screens/editor/screen/editorScreen.js
+++ b/src/screens/editor/screen/editorScreen.js
@@ -39,7 +39,7 @@ class EditorScreen extends Component {
// Component Life Cycles
componentWillReceiveProps = (nextProps) => {
- const { draftPost } = this.props;
+ const { draftPost, isUploading } = this.props;
if (nextProps.draftPost && draftPost !== nextProps.draftPost) {
this.setState({
@@ -48,6 +48,10 @@ class EditorScreen extends Component {
},
});
}
+
+ if (isUploading !== nextProps) {
+ this._handleFormUpdate();
+ }
};
// Component Functions
@@ -107,7 +111,7 @@ class EditorScreen extends Component {
}
};
- _handleIsFormValid = () => {
+ _handleIsFormValid = (bodyText) => {
const { fields } = this.state;
const { isReply } = this.props;
let _isFormValid;
@@ -118,9 +122,8 @@ class EditorScreen extends Component {
_isFormValid = fields
&& fields.title
&& fields.title.length > 0
- && fields.body
- && fields.body.length > 0
- && fields.tags.length > 0;
+ && ((fields.body && fields.body.length > 0 && fields.tags.length > 0)
+ || (bodyText && bodyText.length > 0));
}
this.setState({ isFormValid: _isFormValid });
@@ -215,6 +218,9 @@ class EditorScreen extends Component {
componentID="body"
draftBody={fields && fields.body}
handleOnTextChange={this._setWordsCount}
+ handleFormUpdate={this._handleFormUpdate}
+ handleIsFormValid={this._handleIsFormValid}
+ isFormValid={isFormValid}
handleOpenImagePicker={handleOnImagePicker}
intl={intl}
uploadedImage={uploadedImage}
diff --git a/src/screens/profile/container/profileContainer.js b/src/screens/profile/container/profileContainer.js
index 7fe4ee9ec..8df955291 100644
--- a/src/screens/profile/container/profileContainer.js
+++ b/src/screens/profile/container/profileContainer.js
@@ -56,7 +56,7 @@ class ProfileContainer extends Component {
return;
}
- if (selectedUser && selectedUser.username) {
+ if (selectedUser && selectedUser.username && selectedUser.username !== currentAccount.name) {
this._loadProfile(selectedUser.username);
if (selectedUser.username) {
diff --git a/src/screens/searchResult/screen/searchResultScreen.js b/src/screens/searchResult/screen/searchResultScreen.js
index 999008fe4..53a23abfe 100644
--- a/src/screens/searchResult/screen/searchResultScreen.js
+++ b/src/screens/searchResult/screen/searchResultScreen.js
@@ -1,4 +1,4 @@
-import React, { PureComponent, Fragment } from 'react';
+import React, { PureComponent } from 'react';
import { View } from 'react-native';
import ScrollableTabView from '@esteemapp/react-native-scrollable-tab-view';
import { injectIntl } from 'react-intl';
@@ -22,35 +22,33 @@ class SearchResultScreen extends PureComponent {
const { intl, tag, navigationGoBack } = this.props;
return (
-
-
- console.log('text :', text)}
- handleOnModalClose={navigationGoBack}
- placeholder={`#${tag}`}
- editable={false}
- autoFocus={false}
- />
- (
-
- )}
+
+ {}}
+ handleOnModalClose={navigationGoBack}
+ placeholder={`#${tag}`}
+ editable={false}
+ />
+ (
+
+ )}
+ >
+
-
-
-
- {/*
+
+ {/*
*/}
-
-
-
+
+
);
}
}