0.1.3 • Published 6 months ago

@micro.app.dev/shared v0.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

@micro.app.dev/shared

Shared components, contexts, and services for MicroApp.

Installation

npm install @micro.app.dev/shared
# or
yarn add @micro.app.dev/shared

Features

  • Theme context and provider
  • App context for authentication state
  • Storage services for todos, budget, and authentication
  • Reusable UI components

Usage

Theme Provider

import { ThemeProvider } from '@micro.app.dev/shared';

function App() {
  return (
    <ThemeProvider>
      {/* Your app content */}
    </ThemeProvider>
  );
}

Using Theme

import { useTheme } from '@micro.app.dev/shared';

function MyComponent() {
  const { colors, isDark, toggleTheme } = useTheme();
  
  return (
    <View style={{ backgroundColor: colors.background }}>
      <Text style={{ color: colors.text }}>
        Current theme: {isDark ? 'Dark' : 'Light'}
      </Text>
      <Button title="Toggle Theme" onPress={toggleTheme} />
    </View>
  );
}

App Context

import { AppContext, useAppContext } from '@micro.app.dev/shared';

function App() {
  const [isAuthenticated, setIsAuthenticated] = useState(false);
  
  return (
    <AppContext.Provider value={{ isAuthenticated, setIsAuthenticated }}>
      {/* Your app content */}
    </AppContext.Provider>
  );
}

// In a component
function MyComponent() {
  const { isAuthenticated, setIsAuthenticated } = useAppContext();
  
  return (
    <Button 
      title={isAuthenticated ? 'Logout' : 'Login'} 
      onPress={() => setIsAuthenticated(!isAuthenticated)} 
    />
  );
}

Storage Services

import { todoStorage, budgetStorage, authStorage } from '@micro.app.dev/shared';

// Todo storage
const todos = await todoStorage.getTodos();
await todoStorage.addTodo({ id: '1', title: 'New Todo', completed: false });

// Budget storage
const expenses = await budgetStorage.getExpenses();
await budgetStorage.addExpense({ id: '1', amount: 100, category: 'Food' });

// Auth storage
await authStorage.setToken('your-auth-token');
const token = await authStorage.getToken();

License

MIT