Merge remote-tracking branch 'parent/main' into upstream-20250328

This commit is contained in:
KMY 2025-03-28 08:44:30 +09:00
commit 12ed20b6d5
257 changed files with 3505 additions and 2010 deletions

View file

@ -1,30 +0,0 @@
import { List as ImmutableList } from 'immutable';
import {
ALERT_SHOW,
ALERT_DISMISS,
ALERT_CLEAR,
} from '../actions/alerts';
const initialState = ImmutableList([]);
let id = 0;
const addAlert = (state, alert) =>
state.push({
key: id++,
...alert,
});
export default function alerts(state = initialState, action) {
switch(action.type) {
case ALERT_SHOW:
return addAlert(state, action.alert);
case ALERT_DISMISS:
return state.filterNot(item => item.key === action.alert.key);
case ALERT_CLEAR:
return state.clear();
default:
return state;
}
}

View file

@ -0,0 +1,24 @@
import { createReducer } from '@reduxjs/toolkit';
import { showAlert, dismissAlert, clearAlerts } from 'mastodon/actions/alerts';
import type { Alert } from 'mastodon/models/alert';
const initialState: Alert[] = [];
let id = 0;
export const alertsReducer = createReducer(initialState, (builder) => {
builder
.addCase(showAlert, (state, { payload }) => {
state.push({
key: id++,
...payload,
});
})
.addCase(dismissAlert, (state, { payload: { key } }) => {
return state.filter((item) => item.key !== key);
})
.addCase(clearAlerts, () => {
return [];
});
});

View file

@ -5,7 +5,7 @@ import { combineReducers } from 'redux-immutable';
import { accountsReducer } from './accounts';
import accounts_map from './accounts_map';
import alerts from './alerts';
import { alertsReducer } from './alerts';
import announcements from './announcements';
import { antennasReducer } from './antennas';
import { bookmarkCategoriesReducer } from './bookmark_categories';
@ -49,7 +49,7 @@ const reducers = {
dropdownMenu: dropdownMenuReducer,
timelines,
meta,
alerts,
alerts: alertsReducer,
loadingBar: loadingBarReducer,
modal: modalReducer,
user_lists,