74 lines
2.0 KiB
JavaScript
74 lines
2.0 KiB
JavaScript
import { View, StyleSheet } from "react-native";
|
|
import React, { useState } from "react";
|
|
import CreateLyricsHeader from "../Writing/components/CreateLyricsHeader";
|
|
import ItemContainer from "../../components/ItemContainer/ItemContainer";
|
|
import { Palette } from "../../styles";
|
|
import { FONT_FAMILY } from "../../styles/Fonts";
|
|
import { INSTRUMENTS } from "../../data/data";
|
|
import ListSelection from "../../components/ListSelection/ListSelection";
|
|
|
|
const ChooseInstruments = ({ selected = [], setSelected }) => {
|
|
const [containerLayout, setContainerLayout] = useState(null);
|
|
|
|
// Selection handled by ListSelection
|
|
|
|
return (
|
|
<View style={{ flex: 1, gap: 10, paddingTop: 16 }}>
|
|
<CreateLyricsHeader
|
|
title="Choisis des instruments"
|
|
subTitle="Tu peux choisir jusqu’à 5 instruments différents"
|
|
/>
|
|
<View
|
|
style={{ flex: 1 }}
|
|
onLayout={(event) => setContainerLayout(event.nativeEvent.layout)}
|
|
>
|
|
<ItemContainer height={containerLayout?.height}>
|
|
<ListSelection
|
|
options={INSTRUMENTS}
|
|
variant="simple"
|
|
selected={selected}
|
|
setSelected={setSelected}
|
|
multiple
|
|
maxSelection={5}
|
|
contentContainerStyle={styles.contentContainer}
|
|
itemContainerStyle={styles.itemContainer}
|
|
itemTextStyle={styles.itemText}
|
|
/>
|
|
</ItemContainer>
|
|
</View>
|
|
</View>
|
|
);
|
|
};
|
|
|
|
export default ChooseInstruments;
|
|
|
|
const styles = StyleSheet.create({
|
|
contentContainer: {
|
|
flexGrow: 1,
|
|
padding: 8,
|
|
gap: 10,
|
|
backgroundColor: "#FFFFFF00",
|
|
paddingBottom: 50,
|
|
},
|
|
itemContainer: {
|
|
height: 54,
|
|
backgroundColor: Palette.glass,
|
|
borderRadius: 14,
|
|
overflow: "hidden",
|
|
shadowColor: "#00000040",
|
|
shadowOffset: {
|
|
width: 0,
|
|
height: 2,
|
|
},
|
|
shadowOpacity: 0.25,
|
|
shadowRadius: 3.84,
|
|
|
|
elevation: 5,
|
|
},
|
|
itemText: {
|
|
fontSize: 16,
|
|
color: Palette.white,
|
|
fontFamily: FONT_FAMILY.InterRegular,
|
|
},
|
|
});
|