mirror of
https://github.com/ecency/ecency-mobile.git
synced 2024-12-23 13:22:02 +03:00
created delete comment
This commit is contained in:
parent
9afc394d94
commit
b0f1486adb
16
.vscode/settings.json
vendored
16
.vscode/settings.json
vendored
@ -1,10 +1,10 @@
|
||||
{
|
||||
"prettier.eslintIntegration": true,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.snippetSuggestions": "top",
|
||||
"explorer.confirmDelete": false,
|
||||
"window.zoomLevel": 0,
|
||||
"prettier.printWidth": 100,
|
||||
"prettier.singleQuote": true,
|
||||
"prettier.trailingComma": "all"
|
||||
// "prettier.eslintIntegration": true,
|
||||
// "editor.formatOnSave": true,
|
||||
// "editor.snippetSuggestions": "top",
|
||||
// "explorer.confirmDelete": false,
|
||||
// "window.zoomLevel": 0,
|
||||
// "prettier.printWidth": 100,
|
||||
// "prettier.singleQuote": true,
|
||||
// "prettier.trailingComma": "all"
|
||||
}
|
||||
|
@ -34,7 +34,7 @@
|
||||
"crypto-js": "^3.1.9-1",
|
||||
"currency-symbol-map": "^4.0.4",
|
||||
"diff-match-patch": "^1.0.4",
|
||||
"dsteem": "^0.10.1",
|
||||
"dsteem": "^0.11.2",
|
||||
"intl": "^1.2.5",
|
||||
"jsc-android": "^236355.1.1",
|
||||
"moment": "^2.22.2",
|
||||
|
@ -1,5 +1,7 @@
|
||||
import React, { PureComponent, Fragment } from 'react';
|
||||
import { View, Text } from 'react-native';
|
||||
import ActionSheet from 'react-native-actionsheet';
|
||||
import { injectIntl } from 'react-intl';
|
||||
|
||||
import { getTimeFromNow } from '../../../utils/time';
|
||||
// Constants
|
||||
@ -53,6 +55,7 @@ class CommentView extends PureComponent {
|
||||
isShowMoreButton,
|
||||
marginLeft,
|
||||
voteCount,
|
||||
intl,
|
||||
} = this.props;
|
||||
const { isShowSubComments, isPressedShowButton } = this.state;
|
||||
|
||||
@ -87,23 +90,39 @@ class CommentView extends PureComponent {
|
||||
iconType="MaterialIcons"
|
||||
/>
|
||||
{currentAccountUsername === comment.author && (
|
||||
<IconButton
|
||||
size={18}
|
||||
iconStyle={styles.leftIcon}
|
||||
style={styles.leftButton}
|
||||
name="create"
|
||||
onPress={() => handleOnEditPress && handleOnEditPress(comment)}
|
||||
iconType="MaterialIcons"
|
||||
/>
|
||||
<Fragment>
|
||||
<IconButton
|
||||
size={18}
|
||||
iconStyle={styles.leftIcon}
|
||||
style={styles.leftButton}
|
||||
name="create"
|
||||
onPress={() => handleOnEditPress && handleOnEditPress(comment)}
|
||||
iconType="MaterialIcons"
|
||||
/>
|
||||
{!comment.children && !voteCount && (
|
||||
<Fragment>
|
||||
<IconButton
|
||||
size={18}
|
||||
iconStyle={styles.leftIcon}
|
||||
style={styles.leftButton}
|
||||
name="delete-forever"
|
||||
onPress={() => this.ActionSheet.show()}
|
||||
iconType="MaterialIcons"
|
||||
/>
|
||||
<ActionSheet
|
||||
ref={o => (this.ActionSheet = o)}
|
||||
options={['Reblog', intl.formatMessage({ id: 'alert.cancel' })]}
|
||||
title={intl.formatMessage({ id: 'alert.delete' })}
|
||||
destructiveButtonIndex={0}
|
||||
cancelButtonIndex={1}
|
||||
onPress={(index) => {
|
||||
index === 0 ? handleDeleteComment(comment.permlink) : null;
|
||||
}}
|
||||
/>
|
||||
</Fragment>
|
||||
)}
|
||||
</Fragment>
|
||||
)}
|
||||
<IconButton
|
||||
size={18}
|
||||
iconStyle={styles.leftIcon}
|
||||
style={styles.leftButton}
|
||||
name="delete-forever"
|
||||
onPress={() => handleDeleteComment && handleDeleteComment(comment.author, comment.permlink)}
|
||||
iconType="MaterialIcons"
|
||||
/>
|
||||
</Fragment>
|
||||
)}
|
||||
{isShowMoreButton && (
|
||||
@ -142,4 +161,4 @@ class CommentView extends PureComponent {
|
||||
}
|
||||
}
|
||||
|
||||
export default CommentView;
|
||||
export default injectIntl(CommentView);
|
||||
|
@ -153,9 +153,13 @@ class CommentsContainer extends Component {
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
_handleDeleteComment = (author, permlink) => {
|
||||
deleteComment(author, permlink);
|
||||
|
||||
_handleDeleteComment = (permlink) => {
|
||||
const { currentAccount, pinCode } = this.props;
|
||||
|
||||
deleteComment(currentAccount, pinCode, permlink).then(() => {
|
||||
this._getComments();
|
||||
});
|
||||
}
|
||||
|
||||
render() {
|
||||
@ -198,6 +202,7 @@ class CommentsContainer extends Component {
|
||||
const mapStateToProps = state => ({
|
||||
isLoggedIn: state.application.isLoggedIn,
|
||||
currentAccount: state.account.currentAccount,
|
||||
pinCode: state.account.pin,
|
||||
});
|
||||
|
||||
export default withNavigation(connect(mapStateToProps)(CommentsContainer));
|
||||
|
@ -341,17 +341,55 @@ export const getPurePost = async (author, permlink) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const deleteComment = (author, permlink) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.database
|
||||
.call('comment_delete', [author, permlink])
|
||||
.then((response) => {
|
||||
resolve(response);
|
||||
})
|
||||
.catch((error) => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
// export const deleteComment = (author, permlink) => {
|
||||
// return new Promise((resolve, reject) => {
|
||||
// client.database
|
||||
// .call('delete_comment', [author, permlink])
|
||||
// .then((response) => {
|
||||
// resolve(response);
|
||||
// })
|
||||
// .catch((error) => {
|
||||
// reject(error);
|
||||
// });
|
||||
// });
|
||||
// };
|
||||
|
||||
export const deleteComment = (currentAccount, pin, permlink) => {
|
||||
const { name: author } = currentAccount;
|
||||
const digitPinCode = getDigitPinCode(pin);
|
||||
const key = getAnyPrivateKey(currentAccount.local, digitPinCode);
|
||||
|
||||
if (currentAccount.local.authType === AUTH_TYPE.STEEM_CONNECT) {
|
||||
const token = decryptKey(currentAccount.accessToken, pin);
|
||||
const api = steemConnect.Initialize({
|
||||
accessToken: token,
|
||||
});
|
||||
|
||||
const params = {
|
||||
author,
|
||||
permlink,
|
||||
};
|
||||
|
||||
const opArray = [['delete_comment', params]];
|
||||
|
||||
return api.broadcast(opArray).then(resp => resp.result);
|
||||
}
|
||||
|
||||
if (key) {
|
||||
const opArray = [
|
||||
[
|
||||
'delete_comment',
|
||||
{
|
||||
author,
|
||||
permlink,
|
||||
},
|
||||
],
|
||||
];
|
||||
|
||||
const privateKey = PrivateKey.fromString(key);
|
||||
|
||||
return client.broadcast.sendOperations(opArray, privateKey);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -114,9 +114,11 @@ class EditorContainer extends Component {
|
||||
_getDraft = async (username, isReply) => {
|
||||
if (isReply) {
|
||||
const draftReply = await AsyncStorage.getItem('temp-reply');
|
||||
this.setState({
|
||||
draftPost: { body: draftReply },
|
||||
});
|
||||
if (draftReply) {
|
||||
this.setState({
|
||||
draftPost: { body: draftReply },
|
||||
});
|
||||
}
|
||||
} else {
|
||||
await getDraftPost(username)
|
||||
.then((result) => {
|
||||
|
Loading…
Reference in New Issue
Block a user