* Add compacted component * 引用表示の間にコンテナをはさみ、不要なコードを削除 * 引用APIを作成、ついでにブロック状況を引用APIに反映 * テスト修正など * 引用をキャッシュに登録 * `quote_id`が`quote_of_id`になったのをSerializerに反映 * Fix test * 引用をフィルターの対象に含める設定+エラー修正 * ストリーミングの存在しないプロパティ削除によるエラーを修正 * Fix lint * 他のサーバーから来た引用付き投稿を処理 * Fix test * フィルター設定時エラーの調整 * 画像つき投稿のスタイルを調整 * 画像つき投稿の最大高さを調整 * 引用禁止・非表示の設定を追加 * ブロック対応 * マイグレーションコード調整 * 引用設定の翻訳を作成 * Lint修正 * 参照1つの場合は引用に変換する設定を削除 * 不要になったテストを削除 * ブロック設定追加、バグ修正 * 他サーバーへ引用送信・受け入れ
78 lines
2 KiB
JavaScript
78 lines
2 KiB
JavaScript
import { injectIntl } from 'react-intl';
|
|
|
|
import { connect } from 'react-redux';
|
|
|
|
import { openModal } from '../actions/modal';
|
|
import {
|
|
hideStatus,
|
|
revealStatus,
|
|
toggleStatusCollapse,
|
|
translateStatus,
|
|
undoStatusTranslation,
|
|
} from '../actions/statuses';
|
|
import CompactedStatus from '../components/compacted_status';
|
|
import { makeGetStatus, makeGetPictureInPicture } from '../selectors';
|
|
|
|
const makeMapStateToProps = () => {
|
|
const getStatus = makeGetStatus();
|
|
const getPictureInPicture = makeGetPictureInPicture();
|
|
|
|
const mapStateToProps = (state, props) => ({
|
|
status: getStatus(state, props),
|
|
nextInReplyToId: props.nextId ? state.getIn(['statuses', props.nextId, 'in_reply_to_id']) : null,
|
|
pictureInPicture: getPictureInPicture(state, props),
|
|
});
|
|
|
|
return mapStateToProps;
|
|
};
|
|
|
|
const mapDispatchToProps = (dispatch) => ({
|
|
|
|
onTranslate (status) {
|
|
if (status.get('translation')) {
|
|
dispatch(undoStatusTranslation(status.get('id'), status.get('poll')));
|
|
} else {
|
|
dispatch(translateStatus(status.get('id')));
|
|
}
|
|
},
|
|
|
|
onOpenMedia (statusId, media, index, lang) {
|
|
dispatch(openModal({
|
|
modalType: 'MEDIA',
|
|
modalProps: { statusId, media, index, lang },
|
|
}));
|
|
},
|
|
|
|
onOpenVideo (statusId, media, lang, options) {
|
|
dispatch(openModal({
|
|
modalType: 'VIDEO',
|
|
modalProps: { statusId, media, lang, options },
|
|
}));
|
|
},
|
|
|
|
onToggleHidden (status) {
|
|
if (status.get('hidden')) {
|
|
dispatch(revealStatus(status.get('id')));
|
|
} else {
|
|
dispatch(hideStatus(status.get('id')));
|
|
}
|
|
},
|
|
|
|
onToggleCollapsed (status, isCollapsed) {
|
|
dispatch(toggleStatusCollapse(status.get('id'), isCollapsed));
|
|
},
|
|
|
|
onInteractionModal (type, status) {
|
|
dispatch(openModal({
|
|
modalType: 'INTERACTION',
|
|
modalProps: {
|
|
type,
|
|
accountId: status.getIn(['account', 'id']),
|
|
url: status.get('uri'),
|
|
},
|
|
}));
|
|
},
|
|
|
|
});
|
|
|
|
export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(CompactedStatus));
|