refactor: favorite error tip
This commit is contained in:
@@ -69,9 +69,9 @@ export default function Commands({
|
||||
from_uid = 0,
|
||||
toggleEditMessage,
|
||||
}) {
|
||||
const { addFavorite, isFavorited } = useFavMessage(
|
||||
context == "channel" ? contextId : null
|
||||
);
|
||||
const { addFavorite, isFavorited } = useFavMessage({
|
||||
cid: context == "channel" ? contextId : null,
|
||||
});
|
||||
const [mids, setMids] = useState([]);
|
||||
const dispatch = useDispatch();
|
||||
const [pinModalVisible, setPinModalVisible] = useState(false);
|
||||
@@ -122,8 +122,12 @@ export default function Commands({
|
||||
toast.success("Favorited!");
|
||||
return;
|
||||
}
|
||||
await addFavorite(mid);
|
||||
toast.success("Added Favorites!");
|
||||
const added = await addFavorite(mid);
|
||||
if (added) {
|
||||
toast.success("Added Favorites!");
|
||||
} else {
|
||||
toast.error("Added Favorites Failed!");
|
||||
}
|
||||
};
|
||||
useEffect(() => {
|
||||
if (isUnpinSuccess) {
|
||||
|
||||
@@ -14,7 +14,7 @@ const StyledSaved = styled.div`
|
||||
padding: 8px;
|
||||
`;
|
||||
const SavedMessage = ({ cid, id }) => {
|
||||
const { favorites } = useFavMessage(cid);
|
||||
const { favorites } = useFavMessage({ cid });
|
||||
const [fav, setFav] = useState(null);
|
||||
const [messages, setMessages] = useState(null);
|
||||
useEffect(() => {
|
||||
|
||||
@@ -4,21 +4,20 @@ import {
|
||||
useLazyRemoveFavoriteQuery,
|
||||
useFavoriteMessageMutation,
|
||||
} from "../../app/services/message";
|
||||
export default function useFavMessage(cid = null) {
|
||||
export default function useFavMessage({ cid = null, uid = null }) {
|
||||
const [removeFav] = useLazyRemoveFavoriteQuery();
|
||||
const [addFav] = useFavoriteMessageMutation();
|
||||
const [favorites, setFavorites] = useState([]);
|
||||
const { favs = [] } = useSelector((store) => {
|
||||
return {
|
||||
// mids: store.channelMessage.byId[cid],
|
||||
favs: store.favorites,
|
||||
// loginUser: store.contacts.byId[store.authData.uid],
|
||||
};
|
||||
});
|
||||
const addFavorite = async (mid = []) => {
|
||||
const mids = Array.isArray(mid) ? mid.map((i) => +i) : [+mid];
|
||||
if (mids.length == 0) return;
|
||||
await addFav(mids);
|
||||
const { error = null } = await addFav(mids);
|
||||
return !error;
|
||||
};
|
||||
const removeFavorite = (id) => {
|
||||
if (!id) return;
|
||||
@@ -36,16 +35,23 @@ export default function useFavMessage(cid = null) {
|
||||
return mids.findIndex((i) => i == mid) > -1;
|
||||
};
|
||||
useEffect(() => {
|
||||
const filtereds = cid
|
||||
let filtereds = [];
|
||||
filtereds = cid
|
||||
? favs.filter((f) => {
|
||||
if (!f.messages) return false;
|
||||
return f.messages.every((m) => m.source.gid == cid);
|
||||
})
|
||||
: favs;
|
||||
console.log("filtered", filtereds);
|
||||
setFavorites(filtereds);
|
||||
}, [cid, favs]);
|
||||
filtereds = uid
|
||||
? filtereds.filter((f) => {
|
||||
if (!f.messages) return false;
|
||||
return f.messages.every((m) => m.source.uid == uid);
|
||||
})
|
||||
: filtereds;
|
||||
|
||||
setFavorites(filtereds);
|
||||
}, [cid, uid, favs]);
|
||||
console.log("filtered", cid, uid, favs);
|
||||
return {
|
||||
isFavorited,
|
||||
addFavorite,
|
||||
|
||||
Reference in New Issue
Block a user