feat: major update - Markdown Editor, CodeMirror upgrades, SEO improvements, tool cleanup
- Added new Markdown Editor with live preview, GFM support, PDF/HTML/DOCX export - Upgraded all paste fields to CodeMirror with syntax highlighting and expand/collapse - Enhanced Object Editor with advanced URL fetching and preview mode - Improved export views with syntax highlighting in Table/Object editors - Implemented SEO improvements (FAQ schema, breadcrumbs, internal linking) - Added Related Tools recommendations component - Created custom 404 page with tool suggestions - Consolidated tools: removed JSON, Serialize, CSV-JSON (merged into main editors) - Updated documentation and cleaned up redundant files - Updated release notes with user-centric improvements
This commit is contained in:
81
src/config/features.js
Normal file
81
src/config/features.js
Normal file
@@ -0,0 +1,81 @@
|
||||
/**
|
||||
* Feature Toggle System
|
||||
*
|
||||
* Controls which features are available in FREE vs PRO versions
|
||||
* Currently static, will be dynamic from database in the future
|
||||
*/
|
||||
|
||||
// User tier - will be fetched from database/auth in the future
|
||||
export const USER_TIER = {
|
||||
FREE: 'free',
|
||||
PRO: 'pro'
|
||||
};
|
||||
|
||||
// Current user tier (static for now, will be dynamic)
|
||||
// TODO: Replace with actual user tier from authentication/database
|
||||
export const getCurrentUserTier = () => {
|
||||
// For development/testing, you can change this
|
||||
const staticTier = USER_TIER.PRO; // Change to USER_TIER.PRO to test pro features
|
||||
|
||||
// In the future, this will be:
|
||||
// return getUserFromAuth()?.tier || USER_TIER.FREE;
|
||||
|
||||
return staticTier;
|
||||
};
|
||||
|
||||
// Feature flags
|
||||
export const FEATURES = {
|
||||
// Advanced URL Fetch with headers, methods, body, auth
|
||||
ADVANCED_URL_FETCH: {
|
||||
name: 'Advanced URL Fetch',
|
||||
description: 'Custom HTTP methods, headers, authentication, and request body',
|
||||
tier: USER_TIER.PRO,
|
||||
enabled: (userTier) => userTier === USER_TIER.PRO
|
||||
},
|
||||
|
||||
// Future pro features can be added here
|
||||
BULK_OPERATIONS: {
|
||||
name: 'Bulk Operations',
|
||||
description: 'Process multiple files or operations at once',
|
||||
tier: USER_TIER.PRO,
|
||||
enabled: (userTier) => userTier === USER_TIER.PRO
|
||||
},
|
||||
|
||||
EXPORT_TEMPLATES: {
|
||||
name: 'Export Templates',
|
||||
description: 'Save and reuse custom export templates',
|
||||
tier: USER_TIER.PRO,
|
||||
enabled: (userTier) => userTier === USER_TIER.PRO
|
||||
},
|
||||
|
||||
CLOUD_SYNC: {
|
||||
name: 'Cloud Sync',
|
||||
description: 'Sync your data and settings across devices',
|
||||
tier: USER_TIER.PRO,
|
||||
enabled: (userTier) => userTier === USER_TIER.PRO
|
||||
}
|
||||
};
|
||||
|
||||
// Helper function to check if a feature is enabled
|
||||
export const isFeatureEnabled = (featureName) => {
|
||||
const feature = FEATURES[featureName];
|
||||
if (!feature) return false;
|
||||
|
||||
const userTier = getCurrentUserTier();
|
||||
return feature.enabled(userTier);
|
||||
};
|
||||
|
||||
// Helper function to get user tier
|
||||
export const getUserTier = () => {
|
||||
return getCurrentUserTier();
|
||||
};
|
||||
|
||||
// Helper function to check if user is pro
|
||||
export const isProUser = () => {
|
||||
return getCurrentUserTier() === USER_TIER.PRO;
|
||||
};
|
||||
|
||||
// Helper function to get feature info
|
||||
export const getFeatureInfo = (featureName) => {
|
||||
return FEATURES[featureName] || null;
|
||||
};
|
||||
Reference in New Issue
Block a user