-
-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathHeader.tsx
More file actions
75 lines (71 loc) · 1.54 KB
/
Header.tsx
File metadata and controls
75 lines (71 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import React from "react";
import { Text, useTheme } from "@ui-kitten/components";
import { View, Pressable } from "react-native";
import IconClose from "@material-symbols/svg-400/rounded/close.svg";
import IconBack from "@material-symbols/svg-400/rounded/arrow_back_ios_new.svg";
export function CloseIcon() {
const theme = useTheme();
return (
<IconClose
width={32}
height={32}
fill={theme["text-basic-color"]}
testID="headerCloseIcon"
/>
);
}
export function BackIcon() {
const theme = useTheme();
return (
<IconBack
width={28}
height={28}
fill={theme["text-basic-color"]}
testID="headerBackIcon"
/>
);
}
interface HeaderProps {
title: string;
showDone?: boolean;
onDone?: () => void;
showBack?: boolean;
onBack?: () => void;
}
export default function Header({
title,
showDone,
onDone,
showBack,
onBack,
}: HeaderProps) {
return (
<View
style={{
marginVertical: 32,
flexDirection: "row",
alignItems: "center",
}}
>
{showBack && (
<Pressable
onPress={onBack}
style={{ paddingHorizontal: 16, paddingVertical: 4 }}
>
<BackIcon />
</Pressable>
)}
<Text category="h3" style={{ flex: 1, paddingLeft: showBack ? 0 : 16 }}>
{title}
</Text>
{showDone && (
<Pressable
onPress={onDone}
style={{ paddingHorizontal: 16, paddingVertical: 4 }}
>
<CloseIcon />
</Pressable>
)}
</View>
);
}