// App.js
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { createStackNavigator } from '@react-navigation/stack';
// الشاشات الرئيسية
const DailyTransactions = () => {
const [transactions, setTransactions] = useState([]);
return (
<View style={styles.container}>
<Text style={styles.header}>المعاملات اليومية</Text>
{/* نموذج إضافة معاملة جديدة */}
<TransactionForm onSubmit={(transaction) => {
setTransactions([...transactions, transaction]);
}} />
{/* قائمة المعاملات */}
<TransactionList data={transactions} />
</View>
);
};
const Invoices = () => {
const [invoices, setInvoices] = useState([]);
return (
<View style={styles.container}>
<Text style={styles.header}>الفواتير</Text>
{/* نموذج إنشاء فاتورة جديدة */}
<InvoiceForm onSubmit={(invoice) => {
setInvoices([...invoices, invoice]);
}} />
{/* قائمة الفواتير */}
<InvoiceList data={invoices} />
</View>
);
};
const ExpensesIncome = () => {
return (
<View style={styles.container}>
<Text style={styles.header}>المصروفات والإيرادات</Text>
{/* مخطط بياني للمصروفات والإيرادات */}
<ExpenseIncomeChart />
{/* تفاصيل المصروفات والإيرادات */}
<ExpenseIncomeDetails />
</View>
);
};
const Reports = () => {
return (
<View style={styles.container}>
<Text style={styles.header}>التقارير</Text>
{/* قائمة التقارير المتاحة */}
<ReportsList onGenerateReport={(type) => {
generateReport(type);
}} />
</View>
);
};
// إعداد التنقل
const Tab = createBottomTabNavigator();
const Stack = createStackNavigator();
export default function App() {
return (
<NavigationContainer>
<Tab.Navigator>
<Tab.Screen
name="المعاملات"
component={DailyTransactions}
/>
<Tab.Screen
name="الفواتير"
component={Invoices}
/>
<Tab.Screen
name="المصروفات والإيرادات"
component={ExpensesIncome}
/>
<Tab.Screen
name="التقارير"
component={Reports}
/>
</Tab.Navigator>
</NavigationContainer>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
padding: 20,
backgroundColor: '#fff',
},
header: {
fontSize: 24,
fontWeight: 'bold',
marginBottom: 20,
textAlign: 'right',
},
});