4691b0068c
* Remove the search button from UI header when logged out (#25631) * Change account search to match by text when opted-in (#25599) Co-authored-by: Eugen Rochko <eugen@zeonfederated.com> * Fix ResolveURLService not resolving local URLs for remote content (#25637) * Remove `pkg-config` gem dependency (#25615) * Update Crowdin configuration file * Fix onboarding prompt being displayed because of disconnection gaps (#25617) * Use an Immutable Record as the root state (#25584) * Add index to backups on `user_id` column (#25647) * Fix rails `rewhere` deprecation warning in directories api controller (#25625) * Remove unused routes (#25578) * Fixing an issue with a missing argument (#2261) undefined * Update uri to version 0.12.2 (CVE fix) (#25657) * Change local and federated timelines to be in a single firehose column (#25641) * Fix HTTP 500 in `/api/v1/emails/check_confirmation` (#25595) * Rails 7 update (#24241) * Change dropdown icon above compose form from ellipsis to bars in web UI (#25661) * Prevent duplicate concurrent calls of `/api/*/instance` in web UI (#25663) * Revert "Rails 7 update" (#25667) * [Glitch] Remove the search button from UI header when logged out Port285a691936
to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com> * [Glitch] Fix onboarding prompt being displayed because of disconnection gaps Port9934949fc4
to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com> * [Glitch] Use an Immutable Record as the root state Port78ba12f0bf
to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com> * [Glitch] Change local and federated timelines to be in a single firehose column Portcea9db5a0b
to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com> * [Glitch] Change dropdown icon above compose form from ellipsis to bars in web UI Port0512537eb6
to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com> * [Glitch] Prevent duplicate concurrent calls of `/api/*/instance` in web UI Port5b46345459
to glitch-soc Signed-off-by: Claire <claire.github-309c@sitedethib.com> * Show local-only posts in “All” by default, and add back option to toggle it * Fix showing local only toots in "All" (#2265) * Fix warnings about missing dependency in hooks Signed-off-by: Plastikmensch <plastikmensch@users.noreply.github.com> * Add `allowLocalOnly` to timelineId Without this local-only toots will never be loaded. feedType is checked to be public to not show local-only toots in the "Remote" tab. Signed-off-by: Plastikmensch <plastikmensch@users.noreply.github.com> --------- Signed-off-by: Plastikmensch <plastikmensch@users.noreply.github.com> * Add regex filter back to firehose (#2266) * Add regex filter back to firehose The regex filter will apply to all tabs and not be automatically applied when pinned. Signed-off-by: Plastikmensch <plastikmensch@users.noreply.github.com> * Keep regex when pinned Signed-off-by: Plastikmensch <plastikmensch@users.noreply.github.com> --------- Signed-off-by: Plastikmensch <plastikmensch@users.noreply.github.com> --------- Signed-off-by: Claire <claire.github-309c@sitedethib.com> Signed-off-by: Plastikmensch <plastikmensch@users.noreply.github.com> Co-authored-by: Claire <claire.github-309c@sitedethib.com> Co-authored-by: jsgoldstein <jakegoldstein95@gmail.com> Co-authored-by: Eugen Rochko <eugen@zeonfederated.com> Co-authored-by: Renaud Chaput <renchap@gmail.com> Co-authored-by: Matt Jankowski <matt@jankowski.online> Co-authored-by: Vivianne <puttabutta@gmail.com> Co-authored-by: Daniel M Brasil <danielmbrasil@protonmail.com> Co-authored-by: mogaminsk <mgmnjp@icloud.com> Co-authored-by: Plastikmensch <Plastikmensch@users.noreply.github.com>
112 lines
3.1 KiB
TypeScript
112 lines
3.1 KiB
TypeScript
import { Record as ImmutableRecord } from 'immutable';
|
|
|
|
import { loadingBarReducer } from 'react-redux-loading-bar';
|
|
import { combineReducers } from 'redux-immutable';
|
|
|
|
import accounts from './accounts';
|
|
import accounts_counters from './accounts_counters';
|
|
import accounts_map from './accounts_map';
|
|
import alerts from './alerts';
|
|
import announcements from './announcements';
|
|
import blocks from './blocks';
|
|
import boosts from './boosts';
|
|
import compose from './compose';
|
|
import contexts from './contexts';
|
|
import conversations from './conversations';
|
|
import custom_emojis from './custom_emojis';
|
|
import domain_lists from './domain_lists';
|
|
import dropdown_menu from './dropdown_menu';
|
|
import filters from './filters';
|
|
import followed_tags from './followed_tags';
|
|
import height_cache from './height_cache';
|
|
import history from './history';
|
|
import listAdder from './list_adder';
|
|
import listEditor from './list_editor';
|
|
import lists from './lists';
|
|
import markers from './markers';
|
|
import media_attachments from './media_attachments';
|
|
import meta from './meta';
|
|
import { missedUpdatesReducer } from './missed_updates';
|
|
import { modalReducer } from './modal';
|
|
import mutes from './mutes';
|
|
import notifications from './notifications';
|
|
import picture_in_picture from './picture_in_picture';
|
|
import polls from './polls';
|
|
import push_notifications from './push_notifications';
|
|
import relationships from './relationships';
|
|
import search from './search';
|
|
import server from './server';
|
|
import settings from './settings';
|
|
import status_lists from './status_lists';
|
|
import statuses from './statuses';
|
|
import suggestions from './suggestions';
|
|
import tags from './tags';
|
|
import timelines from './timelines';
|
|
import trends from './trends';
|
|
import user_lists from './user_lists';
|
|
|
|
const reducers = {
|
|
announcements,
|
|
dropdown_menu,
|
|
timelines,
|
|
meta,
|
|
alerts,
|
|
loadingBar: loadingBarReducer,
|
|
modal: modalReducer,
|
|
user_lists,
|
|
domain_lists,
|
|
status_lists,
|
|
accounts,
|
|
accounts_counters,
|
|
accounts_map,
|
|
statuses,
|
|
relationships,
|
|
settings,
|
|
push_notifications,
|
|
mutes,
|
|
blocks,
|
|
boosts,
|
|
server,
|
|
contexts,
|
|
compose,
|
|
search,
|
|
media_attachments,
|
|
notifications,
|
|
height_cache,
|
|
custom_emojis,
|
|
lists,
|
|
listEditor,
|
|
listAdder,
|
|
filters,
|
|
conversations,
|
|
suggestions,
|
|
polls,
|
|
trends,
|
|
missed_updates: missedUpdatesReducer,
|
|
markers,
|
|
picture_in_picture,
|
|
history,
|
|
tags,
|
|
followed_tags,
|
|
};
|
|
|
|
// We want the root state to be an ImmutableRecord, which is an object with a defined list of keys,
|
|
// so it is properly typed and keys can be accessed using `state.<key>` syntax.
|
|
// This will allow an easy conversion to a plain object once we no longer call `get` or `getIn` on the root state
|
|
|
|
// By default with `combineReducers` it is a Collection, so we provide our own implementation to get a Record
|
|
const initialRootState = Object.fromEntries(
|
|
Object.entries(reducers).map(([name, reducer]) => [
|
|
name,
|
|
reducer(undefined, {
|
|
// empty action
|
|
}),
|
|
])
|
|
);
|
|
|
|
const RootStateRecord = ImmutableRecord(initialRootState, 'RootState');
|
|
|
|
const rootReducer = combineReducers(reducers, RootStateRecord);
|
|
|
|
export { rootReducer };
|