Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,13 @@
"android/",
"ios/",
".expo/",
"src/contracts/types/"
"src/contracts/types/",
"app/",
"backend/",
"acbu-backend/",
"src/animations/",
"stellarlend/",
"stellarlend-pr282/"
],
"settings": {
"import/resolver": {
Expand Down
11 changes: 11 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,17 @@ builds/
coverage/
# TypeChain output (generated; do not reformat to avoid churn)
src/contracts/types/
app/
backend/
acbu-backend/
src/animations/
stellarlend/
stellarlend-pr282/
docs/
load-tests/
README.md
contracts/**/*.md
contracts/**/test_snapshots/
# Rust build artifacts (local/generated)
contracts/target/
# Backup/fixed package snapshots
Expand Down
1 change: 1 addition & 0 deletions app/screens/CalendarIntegrationScreen.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from '../../src/screens/CalendarIntegrationScreen';
1 change: 1 addition & 0 deletions app/services/calendarService.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from '../../src/services/calendarService';
1 change: 1 addition & 0 deletions app/stores/calendarStore.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from '../../src/store/calendarStore';
4 changes: 2 additions & 2 deletions contracts/invoice/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ mod tests {
name: String::from_str(&env, "Pro Plan"),
price: 10_000,
token: merchant.clone(),
interval: Interval::Monthly,
interval: subtrackr_types::Interval::Monthly,
active: true,
subscriber_count: 1,
created_at: 1_750_000_000,
Expand Down Expand Up @@ -387,7 +387,7 @@ mod tests {
name: String::from_str(&env, "Pro Plan"),
price: 10_000,
token: Address::generate(&env),
interval: Interval::Monthly,
interval: subtrackr_types::Interval::Monthly,
active: true,
subscriber_count: 1,
created_at: 1_750_000_000,
Expand Down
7 changes: 6 additions & 1 deletion jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,12 @@ module.exports = {
collectCoverageFrom: ['src/**/*.{ts,tsx}', 'chaos/**/*.ts', '!src/**/*.d.ts', '!src/**/index.ts'],
testMatch: ['**/__tests__/**/*.(test|spec).[jt]s?(x)', '**/?(*.)+(spec|test).[jt]s?(x)'],
modulePathIgnorePatterns: ['<rootDir>/e2e'],
testPathIgnorePatterns: ['/node_modules/', '<rootDir>/e2e/', '<rootDir>/load-tests/'],
testPathIgnorePatterns: [
'/node_modules/',
'<rootDir>/e2e/',
'<rootDir>/load-tests/',
'<rootDir>/src/animations/',
],
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
},
Expand Down
1 change: 1 addition & 0 deletions src/components/config/features.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from '../../config/features';
1 change: 1 addition & 0 deletions src/components/hooks/useFeatureAccess.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from '../../hooks/useFeatureAccess';
1 change: 1 addition & 0 deletions src/components/services/featureFlags.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from '../../services/featureFlags';
1 change: 1 addition & 0 deletions src/components/store/userStore.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from '../../store/userStore';
1 change: 1 addition & 0 deletions src/components/subscription/AnimatedSubscriptionCard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,10 @@
const scaleAnim = useAnimatedValue(1);
const priceAnim = useAnimatedValue(0);
const statusAnim = useAnimatedValue(subscription.isActive ? 1 : 0);
const fallbackSharedElementAnim = useAnimatedValue(1);

Check failure on line 49 in src/components/subscription/AnimatedSubscriptionCard.tsx

View workflow job for this annotation

GitHub Actions / TypeScript Type Check

Cannot redeclare block-scoped variable 'fallbackSharedElementAnim'.

// Shared element transition
const fallbackSharedElementAnim = useAnimatedValue(1);

Check failure on line 52 in src/components/subscription/AnimatedSubscriptionCard.tsx

View workflow job for this annotation

GitHub Actions / TypeScript Type Check

Cannot redeclare block-scoped variable 'fallbackSharedElementAnim'.
const sharedElementAnim = sharedElementId
? SharedElementTransition.register(sharedElementId, 1)
: fallbackSharedElementAnim;
Expand Down
1 change: 1 addition & 0 deletions src/components/types/feature.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from '../../types/feature';
1 change: 1 addition & 0 deletions src/components/types/subscription.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from '../../types/subscription';
1 change: 1 addition & 0 deletions src/components/utils/animations.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from '../../utils/animations';
1 change: 1 addition & 0 deletions src/components/utils/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from '../../utils/constants';
16 changes: 11 additions & 5 deletions src/navigation/AppNavigator.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import GDPRSettingsScreen from '../screens/GDPRSettingsScreen';
import LanguageSettingsScreen from '../screens/LanguageSettingsScreen';
import SessionManagementScreen from '../screens/SessionManagementScreen';
import SettingsScreen from '../screens/SettingsScreen';
import CalendarIntegrationScreen from '../screens/CalendarIntegrationScreen';
import AccountingExportScreen from '../screens/AccountingExportScreen';
import WebhookSettingsScreen from '../screens/WebhookSettingsScreen';
import ErrorDashboardScreen from '../screens/ErrorDashboardScreen';
Expand Down Expand Up @@ -118,6 +119,11 @@ const HomeStack = () => (
const SettingsStack = () => (
<Stack.Navigator>
<Stack.Screen name="Settings" component={SettingsScreen} options={{ headerShown: false }} />
<Stack.Screen
name="CalendarIntegration"
component={CalendarIntegrationScreen}
options={{ title: 'Calendar Integrations', headerShown: true }}
/>
<Stack.Screen
name="Community"
component={CommunityScreen}
Expand All @@ -138,6 +144,11 @@ const SettingsStack = () => (
component={LanguageSettingsScreen}
options={{ title: 'Language', headerShown: true }}
/>
<Stack.Screen
name="WebhookSettings"
component={WebhookSettingsScreen}
options={{ title: 'Webhooks', headerShown: true }}
/>
<Stack.Screen
name="SessionManagement"
component={SessionManagementScreen}
Expand All @@ -148,11 +159,6 @@ const SettingsStack = () => (
component={AdminDashboardScreen}
options={{ title: 'Admin Dashboard', headerShown: true }}
/>
<Stack.Screen
name="WebhookSettings"
component={WebhookSettingsScreen}
options={{ title: 'Webhooks', headerShown: true }}
/>
<Stack.Screen
name="AccountingExport"
component={AccountingExportScreen}
Expand Down
1 change: 1 addition & 0 deletions src/navigation/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export type RootStackParamList = {
InvoiceDetail: { id: string };
GDPRSettings: undefined;
Settings: undefined;
CalendarIntegration: undefined;
WebhookSettings: undefined;
AccountingExport: undefined;
AdminDashboard: undefined;
Expand Down
6 changes: 3 additions & 3 deletions src/screens/AddSubscriptionScreen.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@ import { RootStackParamList } from '../navigation/types';
import { useSubscriptionStore, useSettingsStore } from '../store';
import { Button } from '../components/common/Button';
import { getCurrencySymbol } from '../utils/formatting';
import { colors, spacing, typography, borderRadius } from '../utils/constants';

import DateTimePicker, { DateTimePickerEvent } from '@react-native-community/datetimepicker';
import { errorHandler } from '../services/errorHandler';
import type { SubscriptionFormData } from '../types/subscription';
import { BillingCycle, SubscriptionCategory } from '../types/subscription';

interface AddSubscriptionFormData extends SubscriptionFormData {
priceError: string;
Expand All @@ -45,7 +48,6 @@ const AddSubscriptionScreen: React.FC = () => {
cryptoAmount: undefined,
});


useEffect(() => {
if (error) {
Alert.alert('Error', error.userMessage);
Expand Down Expand Up @@ -271,7 +273,6 @@ const AddSubscriptionScreen: React.FC = () => {
<View style={styles.priceInputContainer}>
<Text style={styles.currencySymbol}>{getCurrencySymbol(formData.currency)}</Text>
<TextInput

style={styles.priceInput}
value={formData.price > 0 ? formData.price.toString() : ''}
onChangeText={(text) => {
Expand Down Expand Up @@ -333,7 +334,6 @@ const AddSubscriptionScreen: React.FC = () => {
</View>
</View>


<View style={styles.inputGroup}>
<Text style={styles.label}>Next Billing Date *</Text>
<TouchableOpacity
Expand Down
Loading
Loading