Add dropdown for boost privacy in boost confirmation modal (#15704)
* Various dropdown code quality fixes * Prepare support for privacy selection in boost modal * Add dropdown for boost privacy in boost confirmation modalmaster
parent
8b8c6726ce
commit
07b46cb332
@ -0,0 +1,29 @@ |
|||||||
|
import { openModal } from './modal'; |
||||||
|
|
||||||
|
export const BOOSTS_INIT_MODAL = 'BOOSTS_INIT_MODAL'; |
||||||
|
export const BOOSTS_CHANGE_PRIVACY = 'BOOSTS_CHANGE_PRIVACY'; |
||||||
|
|
||||||
|
export function initBoostModal(props) { |
||||||
|
return (dispatch, getState) => { |
||||||
|
const default_privacy = getState().getIn(['compose', 'default_privacy']); |
||||||
|
|
||||||
|
const privacy = props.status.get('visibility') === 'private' ? 'private' : default_privacy; |
||||||
|
|
||||||
|
dispatch({ |
||||||
|
type: BOOSTS_INIT_MODAL, |
||||||
|
privacy |
||||||
|
}); |
||||||
|
|
||||||
|
dispatch(openModal('BOOST', props)); |
||||||
|
}; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
export function changeBoostPrivacy(privacy) { |
||||||
|
return dispatch => { |
||||||
|
dispatch({ |
||||||
|
type: BOOSTS_CHANGE_PRIVACY, |
||||||
|
privacy, |
||||||
|
}); |
||||||
|
}; |
||||||
|
} |
@ -0,0 +1,25 @@ |
|||||||
|
import Immutable from 'immutable'; |
||||||
|
|
||||||
|
import { |
||||||
|
BOOSTS_INIT_MODAL, |
||||||
|
BOOSTS_CHANGE_PRIVACY, |
||||||
|
} from 'mastodon/actions/boosts'; |
||||||
|
|
||||||
|
const initialState = Immutable.Map({ |
||||||
|
new: Immutable.Map({ |
||||||
|
privacy: 'public', |
||||||
|
}), |
||||||
|
}); |
||||||
|
|
||||||
|
export default function mutes(state = initialState, action) { |
||||||
|
switch (action.type) { |
||||||
|
case BOOSTS_INIT_MODAL: |
||||||
|
return state.withMutations((state) => { |
||||||
|
state.setIn(['new', 'privacy'], action.privacy); |
||||||
|
}); |
||||||
|
case BOOSTS_CHANGE_PRIVACY: |
||||||
|
return state.setIn(['new', 'privacy'], action.privacy); |
||||||
|
default: |
||||||
|
return state; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue