Browse Source

add app/pages/transaction/Transaction.js

wudebin 5 months ago
parent
commit
9cb902c278
1 changed files with 109 additions and 0 deletions
  1. 109 0
      Strides-SPAPP/app/pages/transaction/Transaction.js

+ 109 - 0
Strides-SPAPP/app/pages/transaction/Transaction.js

@@ -0,0 +1,109 @@
+/**
+ * 历史交易页面
+ * @邠心vbe on 2024/05/16
+ */
+import React, { Component, useState } from 'react';
+import { ScrollView, StyleSheet, RefreshControl } from 'react-native';
+import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';
+import HistoryList from './HistoryList';
+import OverviewV2 from '../wallet/OverviewV2';
+import PointsHistory from './PointsHistory';
+import app from '../../../app.json';
+import { MyRefreshProps } from '../../components/ThemesConfig';
+
+const TabOverView = () => {
+  const [refresh, setRefresh] = useState(false)
+  return (
+    <ScrollView
+      style={styles.container}
+      contentContainerStyle={$padding(16,0)}
+      refreshControl={
+        <RefreshControl
+          {...MyRefreshProps()}
+          refreshing={refresh}
+          onRefresh={() => setRefresh(true)}
+        />
+      }>
+      <OverviewV2
+        atAglance={false}
+        skeleton={false}
+        refresh={refresh}
+        isTabPage={true}
+        refreshed={() => setRefresh(false)}
+        shown={true}/>
+    </ScrollView>
+  )
+}
+
+export default class Transaction extends Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      pageAdapter: [{
+        title: $t('wallet.tabOverview'),
+        name: "Overview",
+        component: TabOverView
+      },{
+        title: $t('wallet.tabHistory'),
+        name: "History",
+        component: HistoryList
+      },{
+        title: $t('points.points'),
+        name: "Points",
+        component: PointsHistory
+      }]
+    };
+    this.tabBarStyle = {
+      tabBarStyle: styles.tabStyle,
+      tabBarPressColor: rippleColor,
+      tabBarScrollEnabled: false,
+      tabBarIndicatorStyle: styles.indicator,
+      tabBarActiveTintColor: tabBarTextActive,
+      tabBarInactiveTintColor: tabBarTextInactive
+    }
+  }
+
+  backPage() {
+    startPage(PageList.home);
+    return true;
+  }
+
+  render() {
+    const Tab = createMaterialTopTabNavigator();
+    return (
+      <Tab.Navigator
+        style={styles.container}
+          screenOptions={{
+            lazy: false,
+            lazyPreloadDistance: 1,
+            ...this.tabBarStyle
+          }}
+          backBehavior={() => this.backPage()}>
+        { this.state.pageAdapter.map((item, index) => 
+          <Tab.Screen
+            key={index}
+            name={item.name}
+            component={item.component}
+            options={{
+              title: item.title,
+              tabBarAllowFontScaling: false
+            }}
+          />
+        )}
+      </Tab.Navigator>
+    );
+  }
+}
+
+const styles = StyleSheet.create({
+  container: {
+    flex: 1,
+    backgroundColor: colorLight
+  },
+  tabStyle: {
+    backgroundColor: app.isWhitelabel ? colorLight : colorPrimary
+  },
+  indicator: {
+    backgroundColor: app.isWhitelabel ? colorPrimary : colorLight
+  }
+})