Skip to content

Commit 8dd7150

Browse files
authored
fix unfollowing unpublished channels (#7737)
1 parent f1b1523 commit 8dd7150

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

ui/redux/selectors/subscriptions.js

+9-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
selectClaimForUri,
1010
} from 'redux/selectors/claims';
1111
import { swapKeyAndValue } from 'util/swap-json';
12-
import { getChannelFromClaim } from 'util/claim';
12+
import { getChannelFromClaim, isChannelClaim } from 'util/claim';
1313

1414
// Returns the entire subscriptions state
1515
const selectState = (state) => state.subscriptions || {};
@@ -114,12 +114,18 @@ export const makeSelectChannelInSubscriptions = (uri) =>
114114
createSelector(selectSubscriptions, (subscriptions) => subscriptions.some((sub) => sub.uri === uri));
115115

116116
export const selectIsSubscribedForUri = createCachedSelector(
117+
(state, uri) => uri,
117118
selectClaimForUri,
118119
selectSubscriptions,
119-
(claim, subscriptions) => {
120+
(uri, claim, subscriptions) => {
120121
const channelClaim = getChannelFromClaim(claim);
121122
if (channelClaim) {
122-
const uri = channelClaim.permanent_url;
123+
const permanentUrl = channelClaim.permanent_url;
124+
return subscriptions.some((sub) => isURIEqual(sub.uri, permanentUrl));
125+
}
126+
127+
// If it failed, it could be an abandoned channel. Try parseURI:
128+
if (isChannelClaim(claim, uri)) {
123129
return subscriptions.some((sub) => isURIEqual(sub.uri, uri));
124130
}
125131
return false;

0 commit comments

Comments
 (0)