PlayerHeader.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React, { useState, useContext } from 'react';
  2. import {
  3. View,
  4. StyleSheet
  5. } from 'react-native';
  6. import { Icon, Slider } from 'react-native-elements';
  7. import C from 'rn-class';
  8. import {PlayerStateContext, PlayerDispatchContext} from './PlayerReducer';
  9. export default PlayerHead = props => {
  10. const { closePlayer, visibleMenu} = props;
  11. const [isMute, setIsMute] = useState(false);
  12. const playerDispatch = useContext(PlayerDispatchContext);
  13. const playerState = useContext(PlayerStateContext);
  14. const {paused, muted, player, duration, currentTime} = playerState;
  15. const setMute = () => {
  16. //setIsMute(!isMute);
  17. playerDispatch({type:'muted'});
  18. }
  19. const iconsize = {...C.n2cls('size7')};
  20. return (
  21. <View style={styles.container}>
  22. <C.View cls="flx-row flx0.3 ai-s jc-sa">
  23. <C.EL.Icon {...iconsize} type="ionicon" name="md-book" onPress={()=>{visibleMenu('detail')}} />
  24. <C.EL.Icon {...iconsize} type="ionicon" name="md-share" onPress={()=>{visibleMenu('share')}} />
  25. <C.EL.Icon {...iconsize} color="rgb(255,45,85)" type="ionicon" name="md-heart" />
  26. </C.View>
  27. <C.View cls="flx-row flx0.3 ai-e jc-sa">
  28. { muted
  29. ?<C.EL.Icon {...iconsize} type="ionicon" name="md-volume-off" onPress={setMute} />
  30. :<C.EL.Icon {...iconsize} type="ionicon" name="md-volume-high" onPress={setMute} />
  31. }
  32. <C.EL.Icon {...iconsize} type="ionicon" name="md-arrow-down" />
  33. <C.EL.Icon {...iconsize} type="ionicon" name="md-close" onPress={closePlayer} />
  34. </C.View>
  35. </View>
  36. );
  37. }
  38. const styles = StyleSheet.create({
  39. container: {
  40. ...StyleSheet.absoluteFillObject,
  41. flexDirection: 'row',
  42. justifyContent: 'space-between',
  43. alignItems: 'center',
  44. zIndex: 20
  45. },
  46. });