diff --git a/src/selectors/entities/channels.js b/src/selectors/entities/channels.js
index <HASH>..<HASH> 100644
--- a/src/selectors/entities/channels.js
+++ b/src/selectors/entities/channels.js
@@ -20,6 +20,7 @@ import {
 } from 'selectors/entities/preferences';
 import {getLastPostPerChannel} from 'selectors/entities/posts';
 import {getCurrentTeamId, getCurrentTeamMembership} from 'selectors/entities/teams';
+import {isCurrentUserSystemAdmin} from 'selectors/entities/users';
 
 import {
     buildDisplayableChannelList,
@@ -138,6 +139,19 @@ export const getCurrentChannelStats = createSelector(
     }
 );
 
+export function isCurrentChannelReadOnly(state) {
+    return isChannelReadOnly(state, getCurrentChannel(state));
+}
+
+export function isChannelReadOnlyById(state, channelId) {
+    return isChannelReadOnly(state, getChannel(state, channelId));
+}
+
+export function isChannelReadOnly(state, channel) {
+    return channel && channel.name === General.DEFAULT_CHANNEL &&
+        !isCurrentUserSystemAdmin(state) && getConfig(state).ExperimentalTownSquareIsReadOnly === 'true';
+}
+
 export const getChannelSetInCurrentTeam = createSelector(
     getCurrentTeamId,
     getChannelsInTeam,
Add selectors to check if current channel and a channel is ReadOnly. (#<I>)