237 lines
5.3 KiB
TypeScript
237 lines
5.3 KiB
TypeScript
import { StyleSheet } from 'react-native';
|
|
import { typography } from '@theme';
|
|
|
|
export const getStyles = (colors: any) =>
|
|
StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
backgroundColor: colors.background,
|
|
},
|
|
headerRight: {
|
|
marginRight: 16,
|
|
},
|
|
statusBadge: {
|
|
paddingHorizontal: 10,
|
|
paddingVertical: 4,
|
|
borderRadius: 12,
|
|
},
|
|
statusText: {
|
|
fontSize: typography.fontSize.xs,
|
|
fontWeight: typography.fontWeight.bold,
|
|
},
|
|
ticketInfoBar: {
|
|
paddingHorizontal: 16,
|
|
paddingVertical: 12,
|
|
backgroundColor: colors.cardBg,
|
|
borderBottomWidth: 1,
|
|
borderBottomColor: colors.border,
|
|
},
|
|
ticketSubject: {
|
|
fontSize: typography.fontSize.md,
|
|
fontWeight: typography.fontWeight.bold,
|
|
color: colors.text,
|
|
marginBottom: 4,
|
|
},
|
|
ticketMeta: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.textSecondary,
|
|
},
|
|
chatList: {
|
|
padding: 16,
|
|
paddingBottom: 24,
|
|
},
|
|
messageRow: {
|
|
flexDirection: 'row',
|
|
marginBottom: 16,
|
|
width: '100%',
|
|
},
|
|
customerRow: {
|
|
justifyContent: 'flex-end',
|
|
},
|
|
agentRow: {
|
|
justifyContent: 'flex-start',
|
|
},
|
|
bubble: {
|
|
maxWidth: '75%',
|
|
borderRadius: 16,
|
|
paddingHorizontal: 14,
|
|
paddingVertical: 10,
|
|
shadowColor: '#000',
|
|
shadowOffset: { width: 0, height: 1 },
|
|
shadowOpacity: 0.05,
|
|
shadowRadius: 2,
|
|
elevation: 1,
|
|
},
|
|
customerBubble: {
|
|
backgroundColor: colors.primary,
|
|
borderBottomRightRadius: 2,
|
|
},
|
|
agentBubble: {
|
|
backgroundColor: colors.cardBg,
|
|
borderBottomLeftRadius: 2,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
},
|
|
senderName: {
|
|
fontSize: 11,
|
|
fontWeight: typography.fontWeight.semibold,
|
|
color: colors.textSecondary,
|
|
marginBottom: 4,
|
|
},
|
|
messageText: {
|
|
fontSize: typography.fontSize.sm,
|
|
lineHeight: 20,
|
|
},
|
|
customerText: {
|
|
color: '#FFFFFF',
|
|
},
|
|
agentText: {
|
|
color: colors.text,
|
|
},
|
|
timeText: {
|
|
fontSize: 9,
|
|
marginTop: 4,
|
|
textAlign: 'right',
|
|
},
|
|
customerTime: {
|
|
color: 'rgba(255,255,255,0.7)',
|
|
},
|
|
agentTime: {
|
|
color: colors.textSecondary,
|
|
},
|
|
attachmentImage: {
|
|
width: 200,
|
|
height: 150,
|
|
borderRadius: 8,
|
|
marginBottom: 4,
|
|
},
|
|
typingContainer: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
paddingHorizontal: 16,
|
|
paddingVertical: 8,
|
|
backgroundColor: colors.background,
|
|
},
|
|
typingText: {
|
|
fontSize: typography.fontSize.xs,
|
|
color: colors.textSecondary,
|
|
fontStyle: 'italic',
|
|
marginLeft: 6,
|
|
},
|
|
inputContainer: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
paddingHorizontal: 12,
|
|
paddingVertical: 10,
|
|
backgroundColor: colors.cardBg,
|
|
borderTopWidth: 1,
|
|
borderTopColor: colors.border,
|
|
},
|
|
attachmentBtn: {
|
|
padding: 8,
|
|
marginRight: 4,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
},
|
|
input: {
|
|
flex: 1,
|
|
minHeight: 40,
|
|
maxHeight: 100,
|
|
backgroundColor: colors.background,
|
|
borderWidth: 1,
|
|
borderColor: colors.border,
|
|
borderRadius: 20,
|
|
paddingHorizontal: 16,
|
|
paddingVertical: 8,
|
|
fontSize: typography.fontSize.sm,
|
|
color: colors.text,
|
|
marginRight: 8,
|
|
},
|
|
sendBtn: {
|
|
width: 40,
|
|
height: 40,
|
|
borderRadius: 20,
|
|
backgroundColor: colors.primary,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
},
|
|
sendBtnDisabled: {
|
|
backgroundColor: colors.border,
|
|
},
|
|
sendIcon: {
|
|
fontSize: 16,
|
|
color: '#FFFFFF',
|
|
},
|
|
previewContainer: {
|
|
flexDirection: 'row',
|
|
padding: 12,
|
|
backgroundColor: colors.cardBg,
|
|
borderTopWidth: 1,
|
|
borderTopColor: colors.border,
|
|
},
|
|
previewImageWrapper: {
|
|
position: 'relative',
|
|
marginRight: 12,
|
|
},
|
|
previewImage: {
|
|
width: 80,
|
|
height: 80,
|
|
borderRadius: 8,
|
|
},
|
|
removePreviewBtn: {
|
|
position: 'absolute',
|
|
top: -6,
|
|
right: -6,
|
|
backgroundColor: '#FF3B30',
|
|
width: 20,
|
|
height: 20,
|
|
borderRadius: 10,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
borderWidth: 1,
|
|
borderColor: '#FFFFFF',
|
|
},
|
|
removePreviewText: {
|
|
color: '#FFFFFF',
|
|
fontSize: 10,
|
|
fontWeight: 'bold',
|
|
},
|
|
reopenContainer: {
|
|
padding: 16,
|
|
backgroundColor: colors.cardBg,
|
|
borderTopWidth: 1,
|
|
borderTopColor: colors.border,
|
|
alignItems: 'center',
|
|
},
|
|
reopenTitle: {
|
|
fontSize: typography.fontSize.sm,
|
|
fontWeight: typography.fontWeight.semibold,
|
|
color: colors.textSecondary,
|
|
marginBottom: 10,
|
|
textAlign: 'center',
|
|
},
|
|
reopenBtn: {
|
|
paddingHorizontal: 24,
|
|
paddingVertical: 12,
|
|
backgroundColor: colors.primary,
|
|
borderRadius: 24,
|
|
width: '100%',
|
|
alignItems: 'center',
|
|
},
|
|
reopenBtnText: {
|
|
color: '#FFFFFF',
|
|
fontSize: typography.fontSize.sm,
|
|
fontWeight: typography.fontWeight.bold,
|
|
},
|
|
loadingContainer: {
|
|
flex: 1,
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
},
|
|
loadingText: {
|
|
marginTop: 12,
|
|
fontSize: typography.fontSize.sm,
|
|
color: colors.textSecondary,
|
|
},
|
|
});
|