query = query.filter(content.ilike(fuzzy_search(&search_term)));
};
- if let ListingType::Subscribed = self.listing_type {
- query = query.filter(subscribed.eq(true));
- }
+ query = match self.listing_type {
+ ListingType::Subscribed => query.filter(subscribed.eq(true)),
+ ListingType::Local => query.filter(community_local.eq(true)),
+ _ => query,
+ };
if self.saved_only {
query = query.filter(saved.eq(true));
#[derive(EnumString, ToString, Debug, Serialize, Deserialize)]
pub enum ListingType {
All,
+ Local,
Subscribed,
Community,
}
let mut query = self.query;
- if let ListingType::Subscribed = self.listing_type {
- query = query.filter(subscribed.eq(true));
- }
+ query = match self.listing_type {
+ ListingType::Subscribed => query.filter(subscribed.eq(true)),
+ ListingType::Local => query.filter(community_local.eq(true)),
+ _ => query,
+ };
if let Some(for_community_id) = self.for_community_id {
query = query.filter(community_id.eq(for_community_id));
"inferno-router": "^7.4.2",
"js-cookie": "^2.2.0",
"jwt-decode": "^2.2.0",
- "lemmy-js-client": "^1.0.8",
+ "lemmy-js-client": "^1.0.9",
"markdown-it": "^11.0.0",
"markdown-it-container": "^3.0.0",
"markdown-it-emoji": "^1.4.0",
interface ListingTypeSelectProps {
type_: ListingType;
+ showLocal?: boolean;
onChange?(val: ListingType): any;
}
static getDerivedStateFromProps(props: any): ListingTypeSelectProps {
return {
type_: props.type_,
+ showLocal: props.showLocal,
};
}
/>
{i18n.t('subscribed')}
</label>
+ {this.props.showLocal && (
+ <label
+ className={`pointer btn btn-outline-secondary ${
+ this.state.type_ == ListingType.Local && 'active'
+ }`}
+ >
+ <input
+ id={`${this.id}-local`}
+ type="radio"
+ value={ListingType.Local}
+ checked={this.state.type_ == ListingType.Local}
+ onChange={linkEvent(this, this.handleTypeChange)}
+ />
+ {i18n.t('local')}
+ </label>
+ )}
<label
className={`pointer btn btn-outline-secondary ${
this.state.type_ == ListingType.All && 'active'
<span class="mr-3">
<ListingTypeSelect
type_={this.state.listingType}
+ showLocal={
+ this.state.siteRes.federated_instances &&
+ this.state.siteRes.federated_instances.length > 0
+ }
onChange={this.handleListingTypeChange}
/>
</span>
this.state.userSettingsForm.default_listing_type
]
}
+ showLocal={
+ this.state.siteRes.federated_instances &&
+ this.state.siteRes.federated_instances.length > 0
+ }
onChange={this.handleUserSettingsListingTypeChange}
/>
</form>
"month": "Month",
"year": "Year",
"all": "All",
+ "local": "Local",
"top": "Top",
"api": "API",
"docs": "Docs",
dependencies:
chain-able "^3.0.0"
-lemmy-js-client@^1.0.8:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-1.0.8.tgz#98e34c8e3cd07427f883f60fad376dc4d6f46e7f"
- integrity sha512-YZxD3+8RGz7cRKdI8EIe5iQqQIMm5WzdNz6zZ7/CdkMtXUv6YuMOEv8HLTvBoGuaWIJwlMJ+23NIarxlT26IEw==
+lemmy-js-client@^1.0.9:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-1.0.9.tgz#23cab713613612a524085d6bb3fc1d4042d262a8"
+ integrity sha512-QJc4d1HkSxjv555yH3MAOYbTfgbhmmvvuC1uhFvPwBlL5B5MTry/fWPRbtLfkYTxdZWftE+PYvLVKPr3/dFmxw==
leven@^3.1.0:
version "3.1.0"
unicode-match-property-ecmascript "^1.0.4"
unicode-match-property-value-ecmascript "^1.2.0"
+register-service-worker@^1.7.1:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/register-service-worker/-/register-service-worker-1.7.1.tgz#6308347ac6c0af0f6c0b22ea5d59d25e836bc932"
+ integrity sha512-IdTfUZ4u8iJL8o1w8es8l6UMGPmkwHolUdT+UmM1UypC80IB4KbpuIlvwWVj8UDS7eJwkEYRcKRgfRX+oTmJsw==
+
registry-auth-token@^3.0.1:
version "3.4.0"
resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e"