add context menu in msg

This commit is contained in:
cheykrym 2025-12-12 01:37:22 +03:00
parent 59a1c6e035
commit ec70d1f59d
2 changed files with 104 additions and 0 deletions

View File

@ -491,6 +491,9 @@
}
}
}
},
"Выбрать" : {
},
"Выйти из аккаунта" : {
"localizations" : {
@ -728,6 +731,9 @@
}
}
}
},
"Закрепить" : {
},
"Закрепить (скоро)" : {
@ -983,6 +989,9 @@
},
"Концепт" : {
"comment" : "Tab bar: concept clicker"
},
"Копировать" : {
},
"Корзина" : {
"comment" : "Cart",
@ -1791,6 +1800,9 @@
},
"Основной режим находится в ранней разработке (около 10%)." : {
},
"Ответить" : {
},
"Отключить" : {
"comment" : "Кнопка подтверждения отключения 2FA"
@ -2050,6 +2062,9 @@
},
"Перейдите в раздел \"Настройки > Сменить пароль\" и следуйте инструкциям." : {
"comment" : "FAQ answer: reset password"
},
"Переслать" : {
},
"По умолчанию это полноценная соцсеть с лентой, историями и подписками. Если нужно только общение без лишнего контента, переключитесь на режим “Только чаты”. Переключить режим можно в любой момент." : {
@ -2484,6 +2499,9 @@
},
"Профиль пока не загружен. Попробуйте позже." : {
"comment" : "Profile not ready error"
},
"Прочитано" : {
},
"Прямого сброса пароля нет: сменить его можно только из настроек, уже будучи в аккаунте. Если привязана почта или другое 2FA-устройство, воспользуйтесь входом по коду - он подтвердит вашу личность и пустит в аккаунт. После входа откройте настройки → безопасность и задайте новый пароль." : {

View File

@ -259,6 +259,92 @@ struct PrivateChatView: View {
.padding(.horizontal, 8)
.padding(.top, topPadding)
.padding(.vertical, verticalPadding)
.contextMenu {
if isCurrentUser {
if message.isViewed == true {
Text("Прочитано") // Placeholder for read status
}
Button(action: {
// Reply action
}) {
Text("Ответить")
Image(systemName: "arrowshape.turn.up.left")
}
Button(action: {
// Copy action
}) {
Text("Копировать")
Image(systemName: "doc.on.doc")
}
Button(action: {
// Edit action
}) {
Text("Изменить")
Image(systemName: "pencil")
}
Button(action: {
// Pin action
}) {
Text("Закрепить")
Image(systemName: "pin")
}
Button(action: {
// Forward action
}) {
Text("Переслать")
Image(systemName: "arrowshape.turn.up.right")
}
Button(role: .destructive, action: {
// Delete action
}) {
Text("Удалить")
Image(systemName: "trash")
}
Button(action: {
// Select action
}) {
Text("Выбрать")
Image(systemName: "checkmark.circle")
}
} else {
Button(action: {
// Reply action
}) {
Text("Ответить")
Image(systemName: "arrowshape.turn.up.left")
}
Button(action: {
// Copy action
}) {
Text("Копировать")
Image(systemName: "doc.on.doc")
}
Button(action: {
// Pin action
}) {
Text("Закрепить")
Image(systemName: "pin")
}
Button(action: {
// Forward action
}) {
Text("Переслать")
Image(systemName: "arrowshape.turn.up.right")
}
Button(role: .destructive, action: {
// Delete action
}) {
Text("Удалить")
Image(systemName: "trash")
}
Button(action: {
// Select action
}) {
Text("Выбрать")
Image(systemName: "checkmark.circle")
}
}
}
}
private func messageBubble(