-
-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathpatch_mobile_icons_2.js
More file actions
24 lines (18 loc) · 1.59 KB
/
patch_mobile_icons_2.js
File metadata and controls
24 lines (18 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const fs = require('fs');
let content = fs.readFileSync('components/mobile-icons-bar.tsx', 'utf8');
// We need to add imports if they are missing
if (!content.includes('useUsageToggle')) {
content = content.replace("import { useCalendarToggle } from './calendar-toggle-context'", "import { useCalendarToggle } from './calendar-toggle-context'\nimport { useUsageToggle } from './usage-toggle-context'\nimport { useProfileToggle } from './profile-toggle-context'");
}
// And we need to add the hooks inside the component
if (!content.includes('const { toggleUsage, isUsageOpen } = useUsageToggle()')) {
content = content.replace("const { toggleCalendar } = useCalendarToggle()", "const { toggleCalendar } = useCalendarToggle()\n const { toggleUsage, isUsageOpen } = useUsageToggle()\n const { activeView, closeProfileView } = useProfileToggle()\n\n const handleUsageToggle = () => {\n // If we're about to open usage and profile is open, close profile first\n if (!isUsageOpen && activeView) {\n closeProfileView()\n }\n toggleUsage()\n }");
}
const linkRegex = /<a href="https:\/\/buy\.stripe\.com\/14A3cv7K72TR3go14Nasg02" target="_blank" rel="noopener noreferrer">[\s\S]*?<\/a>/;
const replacement = `<Button variant="ghost" size="icon" onClick={handleUsageToggle}>
<TentTree className="h-[1.2rem] w-[1.2rem] transition-all rotate-0 scale-100" />
</Button>`;
content = content.replace(linkRegex, replacement);
// The `useProfileToggle` was actually already imported?
// Let's remove duplicate imports just in case.
fs.writeFileSync('components/mobile-icons-bar.tsx', content);