diff --git a/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRateBottomBar.kt b/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRateBottomBar.kt
new file mode 100644
index 0000000000..d5d36feee1
--- /dev/null
+++ b/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRateBottomBar.kt
@@ -0,0 +1,48 @@
+package com.ivy.exchangerates
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.BoxWithConstraintsScope
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import com.ivy.legacy.IvyWalletPreview
+import com.ivy.ui.R
+import com.ivy.wallet.ui.theme.Blue
+import com.ivy.wallet.ui.theme.components.BackBottomBar
+import com.ivy.wallet.ui.theme.components.IvyButton
+
+@Composable
+internal fun BoxWithConstraintsScope.ExchangeRatesBottomBar(
+ onClose: () -> Unit,
+ onAddRate: () -> Unit
+) {
+ BackBottomBar(onBack = onClose) {
+ IvyButton(
+ text = stringResource(R.string.add_manual_exchange_rate),
+ iconStart = R.drawable.ic_plus
+ ) {
+ onAddRate()
+ }
+ }
+}
+
+@Preview
+@Composable
+private fun PreviewBottomBar() {
+ IvyWalletPreview {
+ Column(
+ Modifier
+ .fillMaxSize()
+ .background(Blue)
+ ) {
+ }
+
+ ExchangeRatesBottomBar(
+ onAddRate = {},
+ onClose = {}
+ )
+ }
+}
diff --git a/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRatesScreen.kt b/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRatesScreen.kt
index 94926cffdc..5119cc095a 100644
--- a/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRatesScreen.kt
+++ b/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRatesScreen.kt
@@ -4,15 +4,9 @@ import androidx.compose.foundation.layout.BoxWithConstraintsScope
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListScope
import androidx.compose.foundation.lazy.items
-import androidx.compose.foundation.shape.RoundedCornerShape
-import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.Add
-import androidx.compose.material3.FloatingActionButton
-import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
@@ -27,7 +21,6 @@ import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import com.ivy.base.legacy.Theme
import com.ivy.design.l0_system.UI
-import com.ivy.design.l0_system.White
import com.ivy.design.l0_system.style
import com.ivy.design.l1_buildingBlocks.ColumnRoot
import com.ivy.design.l1_buildingBlocks.DividerW
@@ -39,6 +32,7 @@ import com.ivy.exchangerates.modal.AddRateModal
import com.ivy.legacy.IvyWalletPreview
import com.ivy.legacy.ui.SearchInput
import com.ivy.legacy.utils.selectEndTextFieldValue
+import com.ivy.navigation.navigation
import com.ivy.wallet.ui.theme.modal.edit.AmountModal
import kotlinx.collections.immutable.persistentListOf
import java.util.UUID
@@ -59,6 +53,7 @@ private fun BoxWithConstraintsScope.UI(
state: RatesState,
onEvent: (RatesEvent) -> Unit,
) {
+ val nav = navigation()
var amountModalVisible by remember {
mutableStateOf(false)
}
@@ -107,23 +102,10 @@ private fun BoxWithConstraintsScope.UI(
mutableStateOf(false)
}
- FloatingActionButton(
- modifier = Modifier
- .systemBarsPadding()
- .align(Alignment.BottomEnd)
- .padding(all = 24.dp),
- containerColor = UI.colors.primary,
- contentColor = White,
- shape = RoundedCornerShape(100.dp),
- onClick = {
- addRateModalVisible = true
- }
- ) {
- Icon(
- imageVector = Icons.Filled.Add,
- contentDescription = "Add rate Icon",
- )
- }
+ ExchangeRatesBottomBar(
+ onClose = { nav.back() },
+ onAddRate = { addRateModalVisible = true }
+ )
AddRateModal(
visible = addRateModalVisible,
diff --git a/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Dark].png b/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Dark].png
index f826a75453..667321ce88 100644
Binary files a/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Dark].png and b/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Dark].png differ
diff --git a/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Light].png b/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Light].png
index c242738a82..68af8ba647 100644
Binary files a/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Light].png and b/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Light].png differ
diff --git a/shared/ui/core/src/main/res/values-ar/strings.xml b/shared/ui/core/src/main/res/values-ar/strings.xml
index 65895f573d..c5a72332c2 100644
--- a/shared/ui/core/src/main/res/values-ar/strings.xml
+++ b/shared/ui/core/src/main/res/values-ar/strings.xml
@@ -27,6 +27,7 @@
%2$s معلومات الميزانية: %1$s
إجمالي الميزانية المتبقية: %1$s %2$s
أضف فئة
+ Add rate
الإنفاق
عدد الإنفاق
الدخل
diff --git a/shared/ui/core/src/main/res/values-bg/strings.xml b/shared/ui/core/src/main/res/values-bg/strings.xml
index 696c93d598..f058044f0f 100644
--- a/shared/ui/core/src/main/res/values-bg/strings.xml
+++ b/shared/ui/core/src/main/res/values-bg/strings.xml
@@ -27,6 +27,7 @@
Бюджет: %1$s%2$s
Общ останал бюджет: %1$s %2$s
Добави категория
+ Add rate
Разходи
Брой разходи
Приход
diff --git a/shared/ui/core/src/main/res/values-de/strings.xml b/shared/ui/core/src/main/res/values-de/strings.xml
index 46bfde3a85..b2fb198b0e 100644
--- a/shared/ui/core/src/main/res/values-de/strings.xml
+++ b/shared/ui/core/src/main/res/values-de/strings.xml
@@ -27,6 +27,7 @@
Budget-Infos: %1$s%2$s
Gesamtes verbleibendes Budget: %1$s %2$s
Kategorie hinzufügen
+ Add rate
Ausgaben
Ausgabenzählung
Einnahmen
diff --git a/shared/ui/core/src/main/res/values-es/strings.xml b/shared/ui/core/src/main/res/values-es/strings.xml
index 84440b2899..919b655a36 100644
--- a/shared/ui/core/src/main/res/values-es/strings.xml
+++ b/shared/ui/core/src/main/res/values-es/strings.xml
@@ -27,6 +27,7 @@
información de presupuesto: %1$s%2$s
Presupuesto total restante: %1$s %2$s
Agregar categoría
+ Add rate
Gastos
Cuenta de gastos
Ingresos
diff --git a/shared/ui/core/src/main/res/values-hi/strings.xml b/shared/ui/core/src/main/res/values-hi/strings.xml
index 29ce3a16f7..5a9bdee0ad 100644
--- a/shared/ui/core/src/main/res/values-hi/strings.xml
+++ b/shared/ui/core/src/main/res/values-hi/strings.xml
@@ -27,6 +27,7 @@
बजट की जानकारी: %1$s%2$s
कुल शेष बजट: %1$s %2$s
कैटेगरी जोड़े
+ Add rate
खर्च
खर्च की गिनती
आय
diff --git a/shared/ui/core/src/main/res/values-id/strings.xml b/shared/ui/core/src/main/res/values-id/strings.xml
index ce54c09083..8e6518338e 100644
--- a/shared/ui/core/src/main/res/values-id/strings.xml
+++ b/shared/ui/core/src/main/res/values-id/strings.xml
@@ -27,6 +27,7 @@
Info anggaran: %1$s%2$s
Total Anggaran Tersisa: %1$s %2$s
Tambahkan kategori
+ Add rate
Pengeluaran
Jumlah pengeluaran
Pendapatan
diff --git a/shared/ui/core/src/main/res/values-in/strings.xml b/shared/ui/core/src/main/res/values-in/strings.xml
index ce54c09083..8e6518338e 100644
--- a/shared/ui/core/src/main/res/values-in/strings.xml
+++ b/shared/ui/core/src/main/res/values-in/strings.xml
@@ -27,6 +27,7 @@
Info anggaran: %1$s%2$s
Total Anggaran Tersisa: %1$s %2$s
Tambahkan kategori
+ Add rate
Pengeluaran
Jumlah pengeluaran
Pendapatan
diff --git a/shared/ui/core/src/main/res/values-it/strings.xml b/shared/ui/core/src/main/res/values-it/strings.xml
index a514cec4ae..3d5ea47da4 100644
--- a/shared/ui/core/src/main/res/values-it/strings.xml
+++ b/shared/ui/core/src/main/res/values-it/strings.xml
@@ -27,6 +27,7 @@
Info sul budget %1$s%2$s
Budget rimanente totale: %1$s %2$s
Aggiungi categoria
+ Add rate
Uscite
Numero uscite
Entrate
diff --git a/shared/ui/core/src/main/res/values-kn/strings.xml b/shared/ui/core/src/main/res/values-kn/strings.xml
index bfae85eabf..9b687fcad1 100644
--- a/shared/ui/core/src/main/res/values-kn/strings.xml
+++ b/shared/ui/core/src/main/res/values-kn/strings.xml
@@ -27,6 +27,7 @@
ಬಜೆಟ್ ಮಾಹಿತಿ: %1$s%2$s
ಒಟ್ಟು ಉಳಿದಿರುವ ಬಜೆಟ್: %1$s %2$s
ವರ್ಗವನ್ನು ಸೇರಿಸಿ
+ Add rate
ಖರ್ಚು
ಖರ್ಚುಗಳ ಎಣಿಕೆ
ಆದಾಯ
diff --git a/shared/ui/core/src/main/res/values-mn/strings.xml b/shared/ui/core/src/main/res/values-mn/strings.xml
index 1abb9a92ff..da18da4ee1 100644
--- a/shared/ui/core/src/main/res/values-mn/strings.xml
+++ b/shared/ui/core/src/main/res/values-mn/strings.xml
@@ -27,6 +27,7 @@
Төсвийн задаргаа: %1$s%2$s
Нийт үлдэгдэл төсөв: %1$s %2$s
Ангилал нэмэх
+ Add rate
Зарлага
Зарлагын тоо
Орлого
diff --git a/shared/ui/core/src/main/res/values-pl/strings.xml b/shared/ui/core/src/main/res/values-pl/strings.xml
index 58ecacef2c..db0155c262 100644
--- a/shared/ui/core/src/main/res/values-pl/strings.xml
+++ b/shared/ui/core/src/main/res/values-pl/strings.xml
@@ -27,6 +27,7 @@
Informacja o budżecie: %1$s%2$s
Całkowity pozostały budżet: %1$s %2$s
Dodaj kategorię
+ Add rate
Wydatki
Ilość wydatków
Wpływy
diff --git a/shared/ui/core/src/main/res/values-pt-rBR/strings.xml b/shared/ui/core/src/main/res/values-pt-rBR/strings.xml
index c6ab4501df..dc1e8e1fc0 100644
--- a/shared/ui/core/src/main/res/values-pt-rBR/strings.xml
+++ b/shared/ui/core/src/main/res/values-pt-rBR/strings.xml
@@ -27,6 +27,7 @@
Informações sobre o orçamento: %1$s %2$s
Orçamento Total Restante: %1$s %2$s
Adicionar categoria
+ Add rate
Despesas
Contagem de despesas
Rendimento
diff --git a/shared/ui/core/src/main/res/values-ru/strings.xml b/shared/ui/core/src/main/res/values-ru/strings.xml
index da3ea87222..2d91dda46f 100644
--- a/shared/ui/core/src/main/res/values-ru/strings.xml
+++ b/shared/ui/core/src/main/res/values-ru/strings.xml
@@ -27,6 +27,7 @@
Информация о бюджете: %1$s%2$s
Общий оставшийся бюджет: %1$s %2$s
Добавить категорию
+ Add rate
Расходы
Количество расходов
Доходы
diff --git a/shared/ui/core/src/main/res/values-vi/strings.xml b/shared/ui/core/src/main/res/values-vi/strings.xml
index bf2bcb6683..39e11f2f9a 100644
--- a/shared/ui/core/src/main/res/values-vi/strings.xml
+++ b/shared/ui/core/src/main/res/values-vi/strings.xml
@@ -27,6 +27,7 @@
Thông tin ngân sách: %1$s%2$s
Tổng ngân sách còn lại: %1$s %2$s
Thêm danh mục
+ Add rate
Khoản chi
Số lần chi
Khoản thu
diff --git a/shared/ui/core/src/main/res/values-zh-rCN/strings.xml b/shared/ui/core/src/main/res/values-zh-rCN/strings.xml
index 7d60dd85b5..dcb0025bdc 100644
--- a/shared/ui/core/src/main/res/values-zh-rCN/strings.xml
+++ b/shared/ui/core/src/main/res/values-zh-rCN/strings.xml
@@ -27,6 +27,7 @@
预算:%1$s%2$s
剩余总预算:%1$s %2$s
添加类别
+ Add rate
支出
支出次数
收入
diff --git a/shared/ui/core/src/main/res/values-zh-rTW/strings.xml b/shared/ui/core/src/main/res/values-zh-rTW/strings.xml
index 211d06dd22..048d7db22e 100644
--- a/shared/ui/core/src/main/res/values-zh-rTW/strings.xml
+++ b/shared/ui/core/src/main/res/values-zh-rTW/strings.xml
@@ -28,6 +28,7 @@
總剩餘預算:%1$s %2$s
超出預算 %1$s %2$s
新增類別
+ Add rate
支出
支出計數
收入
diff --git a/shared/ui/core/src/main/res/values/strings.xml b/shared/ui/core/src/main/res/values/strings.xml
index 505b406669..25af3e2adb 100644
--- a/shared/ui/core/src/main/res/values/strings.xml
+++ b/shared/ui/core/src/main/res/values/strings.xml
@@ -28,6 +28,7 @@
Total Remaining Budget: %1$s %2$s
Budget exceeded by %1$s %2$s
Add category
+ Add rate
Expenses
Expenses count
Income