mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-12-26 04:02:12 +00:00
[bugfix] fix 'steal this look' form, uncheck entries after processing (#1454)
This commit is contained in:
parent
4e4da19720
commit
52fbb3e584
|
@ -115,12 +115,26 @@ function CopyEmojiForm({ localEmojiCodes, type, emojiList }) {
|
|||
const form = {
|
||||
selectedEmoji: useCheckListInput("selectedEmoji", {
|
||||
entries: emojiList,
|
||||
uniqueKey: "shortcode"
|
||||
uniqueKey: "id"
|
||||
}),
|
||||
category: useComboBoxInput("category")
|
||||
};
|
||||
|
||||
const [formSubmit, result] = useFormSubmit(form, query.usePatchRemoteEmojisMutation(), { changedOnly: false });
|
||||
const [formSubmit, result] = useFormSubmit(
|
||||
form,
|
||||
query.usePatchRemoteEmojisMutation(),
|
||||
{
|
||||
changedOnly: false,
|
||||
onFinish: ({ data }) => {
|
||||
if (data != undefined) {
|
||||
form.selectedEmoji.updateMultiple(
|
||||
// uncheck all successfully processed emoji
|
||||
data.map(([id]) => [id, { checked: false }])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
const buttonsInactive = form.selectedEmoji.someSelected
|
||||
? {}
|
||||
|
|
|
@ -171,7 +171,7 @@ module.exports = function useCheckListInput({ name }, { entries, uniqueKey = "ke
|
|||
onChange,
|
||||
selectedValues,
|
||||
reset,
|
||||
someSelected: state.someChecked,
|
||||
someSelected: state.selectedEntries.size > 0,
|
||||
updateMultiple,
|
||||
toggleAll: {
|
||||
ref: toggleAllRef,
|
||||
|
|
|
@ -18,10 +18,11 @@
|
|||
|
||||
"use strict";
|
||||
|
||||
const Promise = require("bluebird");
|
||||
const React = require("react");
|
||||
const syncpipe = require("syncpipe");
|
||||
|
||||
module.exports = function useFormSubmit(form, mutationQuery, { changedOnly = true } = {}) {
|
||||
module.exports = function useFormSubmit(form, mutationQuery, { changedOnly = true, onFinish } = {}) {
|
||||
if (!Array.isArray(mutationQuery)) {
|
||||
throw new ("useFormSubmit: mutationQuery was not an Array. Is a valid useMutation RTK Query provided?");
|
||||
}
|
||||
|
@ -64,7 +65,13 @@ module.exports = function useFormSubmit(form, mutationQuery, { changedOnly = tru
|
|||
|
||||
mutationData.action = action;
|
||||
|
||||
return runMutation(mutationData);
|
||||
return Promise.try(() => {
|
||||
return runMutation(mutationData);
|
||||
}).then((res) => {
|
||||
if (onFinish) {
|
||||
return onFinish(res);
|
||||
}
|
||||
});
|
||||
},
|
||||
{
|
||||
...result,
|
||||
|
|
|
@ -149,7 +149,7 @@ module.exports = (build) => ({
|
|||
body: body
|
||||
}).then(unwrapRes);
|
||||
}).then((res) => {
|
||||
data.push([emoji.shortcode, res]);
|
||||
data.push([emoji.id, res]);
|
||||
}).catch((e) => {
|
||||
let msg = e.message ?? e;
|
||||
if (e.data.error) {
|
||||
|
|
Loading…
Reference in a new issue