mirror of
https://git.kescher.at/CatCatNya/catstodon.git
synced 2024-11-27 18:31:37 +01:00
fix image for new custom emoji reactions
This commit is contained in:
parent
e4949a252e
commit
47ac7a2e50
10 changed files with 36 additions and 22 deletions
|
@ -403,7 +403,7 @@ export function unpinFail(status, error) {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addReaction = (statusId, name) => (dispatch, getState) => {
|
export const addReaction = (statusId, name, url) => (dispatch, getState) => {
|
||||||
const status = getState().get('statuses').get(statusId);
|
const status = getState().get('statuses').get(statusId);
|
||||||
let alreadyAdded = false;
|
let alreadyAdded = false;
|
||||||
if (status) {
|
if (status) {
|
||||||
|
@ -413,7 +413,7 @@ export const addReaction = (statusId, name) => (dispatch, getState) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!alreadyAdded) {
|
if (!alreadyAdded) {
|
||||||
dispatch(addReactionRequest(statusId, name));
|
dispatch(addReactionRequest(statusId, name, url));
|
||||||
}
|
}
|
||||||
|
|
||||||
api(getState).post(`/api/v1/statuses/${statusId}/react/${name}`).then(() => {
|
api(getState).post(`/api/v1/statuses/${statusId}/react/${name}`).then(() => {
|
||||||
|
@ -425,10 +425,11 @@ export const addReaction = (statusId, name) => (dispatch, getState) => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addReactionRequest = (statusId, name) => ({
|
export const addReactionRequest = (statusId, name, url) => ({
|
||||||
type: REACTION_ADD_REQUEST,
|
type: REACTION_ADD_REQUEST,
|
||||||
id: statusId,
|
id: statusId,
|
||||||
name,
|
name,
|
||||||
|
url,
|
||||||
});
|
});
|
||||||
|
|
||||||
export const addReactionSuccess = (statusId, name) => ({
|
export const addReactionSuccess = (statusId, name) => ({
|
||||||
|
|
|
@ -118,7 +118,7 @@ class StatusActionBar extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
handleEmojiPick = data => {
|
handleEmojiPick = data => {
|
||||||
this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, ''));
|
this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, ''), data.imageUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleReblogClick = e => {
|
handleReblogClick = e => {
|
||||||
|
|
|
@ -167,8 +167,8 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onReactionAdd (statusId, name) {
|
onReactionAdd (statusId, name, url) {
|
||||||
dispatch(addReaction(statusId, name));
|
dispatch(addReaction(statusId, name, url));
|
||||||
},
|
},
|
||||||
|
|
||||||
onReactionRemove (statusId, name) {
|
onReactionRemove (statusId, name) {
|
||||||
|
|
|
@ -81,7 +81,7 @@ class ActionBar extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
handleEmojiPick = data => {
|
handleEmojiPick = data => {
|
||||||
this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, ''));
|
this.props.onReactionAdd(this.props.status.get('id'), data.native.replace(/:/g, ''), data.imageUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleBookmarkClick = (e) => {
|
handleBookmarkClick = (e) => {
|
||||||
|
|
|
@ -293,12 +293,12 @@ class Status extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handleReactionAdd = (statusId, name) => {
|
handleReactionAdd = (statusId, name, url) => {
|
||||||
const { dispatch } = this.props;
|
const { dispatch } = this.props;
|
||||||
const { signedIn } = this.context.identity;
|
const { signedIn } = this.context.identity;
|
||||||
|
|
||||||
if (signedIn) {
|
if (signedIn) {
|
||||||
dispatch(addReaction(statusId, name));
|
dispatch(addReaction(statusId, name, url));
|
||||||
} else {
|
} else {
|
||||||
dispatch(openModal('INTERACTION', {
|
dispatch(openModal('INTERACTION', {
|
||||||
type: 'reaction_add',
|
type: 'reaction_add',
|
||||||
|
|
|
@ -59,11 +59,17 @@ const updateReaction = (state, id, name, updater) => state.update(
|
||||||
|
|
||||||
const updateReactionCount = (state, reaction) => updateReaction(state, reaction.status_id, reaction.name, x => x.set('count', reaction.count));
|
const updateReactionCount = (state, reaction) => updateReaction(state, reaction.status_id, reaction.name, x => x.set('count', reaction.count));
|
||||||
|
|
||||||
const addReaction = (state, id, name) => updateReaction(
|
// The url parameter is only used when adding a new custom emoji reaction
|
||||||
|
// (one that wasn't in the reactions list before) because we don't have its
|
||||||
|
// URL yet. In all other cases, it's undefined.
|
||||||
|
const addReaction = (state, id, name, url) => updateReaction(
|
||||||
state,
|
state,
|
||||||
id,
|
id,
|
||||||
name,
|
name,
|
||||||
x => x.set('me', true).update('count', n => n + 1),
|
x => x.set('me', true)
|
||||||
|
.update('count', n => n + 1)
|
||||||
|
.update('url', old => old ? old : url)
|
||||||
|
.update('static_url', old => old ? old : url),
|
||||||
);
|
);
|
||||||
|
|
||||||
const removeReaction = (state, id, name) => updateReaction(
|
const removeReaction = (state, id, name) => updateReaction(
|
||||||
|
@ -103,7 +109,7 @@ export default function statuses(state = initialState, action) {
|
||||||
return updateReactionCount(state, action.reaction);
|
return updateReactionCount(state, action.reaction);
|
||||||
case REACTION_ADD_REQUEST:
|
case REACTION_ADD_REQUEST:
|
||||||
case REACTION_REMOVE_FAIL:
|
case REACTION_REMOVE_FAIL:
|
||||||
return addReaction(state, action.id, action.name);
|
return addReaction(state, action.id, action.name, action.url);
|
||||||
case REACTION_REMOVE_REQUEST:
|
case REACTION_REMOVE_REQUEST:
|
||||||
case REACTION_ADD_FAIL:
|
case REACTION_ADD_FAIL:
|
||||||
return removeReaction(state, action.id, action.name);
|
return removeReaction(state, action.id, action.name);
|
||||||
|
|
|
@ -423,7 +423,7 @@ export function unpinFail(status, error) {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addReaction = (statusId, name) => (dispatch, getState) => {
|
export const addReaction = (statusId, name, url) => (dispatch, getState) => {
|
||||||
const status = getState().get('statuses').get(statusId);
|
const status = getState().get('statuses').get(statusId);
|
||||||
let alreadyAdded = false;
|
let alreadyAdded = false;
|
||||||
if (status) {
|
if (status) {
|
||||||
|
@ -433,7 +433,7 @@ export const addReaction = (statusId, name) => (dispatch, getState) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!alreadyAdded) {
|
if (!alreadyAdded) {
|
||||||
dispatch(addReactionRequest(statusId, name));
|
dispatch(addReactionRequest(statusId, name, url));
|
||||||
}
|
}
|
||||||
|
|
||||||
api(getState).post(`/api/v1/statuses/${statusId}/react/${name}`).then(() => {
|
api(getState).post(`/api/v1/statuses/${statusId}/react/${name}`).then(() => {
|
||||||
|
@ -445,10 +445,11 @@ export const addReaction = (statusId, name) => (dispatch, getState) => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const addReactionRequest = (statusId, name) => ({
|
export const addReactionRequest = (statusId, name, url) => ({
|
||||||
type: REACTION_ADD_REQUEST,
|
type: REACTION_ADD_REQUEST,
|
||||||
id: statusId,
|
id: statusId,
|
||||||
name,
|
name,
|
||||||
|
url,
|
||||||
});
|
});
|
||||||
|
|
||||||
export const addReactionSuccess = (statusId, name) => ({
|
export const addReactionSuccess = (statusId, name) => ({
|
||||||
|
|
|
@ -132,8 +132,8 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onReactionAdd (statusId, name) {
|
onReactionAdd (statusId, name, url) {
|
||||||
dispatch(addReaction(statusId, name));
|
dispatch(addReaction(statusId, name, url));
|
||||||
},
|
},
|
||||||
|
|
||||||
onReactionRemove (statusId, name) {
|
onReactionRemove (statusId, name) {
|
||||||
|
|
|
@ -257,12 +257,12 @@ class Status extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handleReactionAdd = (statusId, name) => {
|
handleReactionAdd = (statusId, name, url) => {
|
||||||
const { dispatch } = this.props;
|
const { dispatch } = this.props;
|
||||||
const { signedIn } = this.context.identity;
|
const { signedIn } = this.context.identity;
|
||||||
|
|
||||||
if (signedIn) {
|
if (signedIn) {
|
||||||
dispatch(addReaction(statusId, name));
|
dispatch(addReaction(statusId, name, url));
|
||||||
} else {
|
} else {
|
||||||
dispatch(openModal('INTERACTION', {
|
dispatch(openModal('INTERACTION', {
|
||||||
type: 'reaction_add',
|
type: 'reaction_add',
|
||||||
|
|
|
@ -57,11 +57,17 @@ const updateReaction = (state, id, name, updater) => state.update(
|
||||||
|
|
||||||
const updateReactionCount = (state, reaction) => updateReaction(state, reaction.status_id, reaction.name, x => x.set('count', reaction.count));
|
const updateReactionCount = (state, reaction) => updateReaction(state, reaction.status_id, reaction.name, x => x.set('count', reaction.count));
|
||||||
|
|
||||||
const addReaction = (state, id, name) => updateReaction(
|
// The url parameter is only used when adding a new custom emoji reaction
|
||||||
|
// (one that wasn't in the reactions list before) because we don't have its
|
||||||
|
// URL yet. In all other cases, it's undefined.
|
||||||
|
const addReaction = (state, id, name, url) => updateReaction(
|
||||||
state,
|
state,
|
||||||
id,
|
id,
|
||||||
name,
|
name,
|
||||||
x => x.set('me', true).update('count', n => n + 1),
|
x => x.set('me', true)
|
||||||
|
.update('count', n => n + 1)
|
||||||
|
.update('url', old => old ? old : url)
|
||||||
|
.update('static_url', old => old ? old : url),
|
||||||
);
|
);
|
||||||
|
|
||||||
const removeReaction = (state, id, name) => updateReaction(
|
const removeReaction = (state, id, name) => updateReaction(
|
||||||
|
@ -101,7 +107,7 @@ export default function statuses(state = initialState, action) {
|
||||||
return updateReactionCount(state, action.reaction);
|
return updateReactionCount(state, action.reaction);
|
||||||
case REACTION_ADD_REQUEST:
|
case REACTION_ADD_REQUEST:
|
||||||
case REACTION_REMOVE_FAIL:
|
case REACTION_REMOVE_FAIL:
|
||||||
return addReaction(state, action.id, action.name);
|
return addReaction(state, action.id, action.name, action.url);
|
||||||
case REACTION_REMOVE_REQUEST:
|
case REACTION_REMOVE_REQUEST:
|
||||||
case REACTION_ADD_FAIL:
|
case REACTION_ADD_FAIL:
|
||||||
return removeReaction(state, action.id, action.name);
|
return removeReaction(state, action.id, action.name);
|
||||||
|
|
Loading…
Reference in a new issue