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,
},
});