@sirendesign/markup 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
3
- import require$$0, { useRef, useState, useEffect, useCallback, useMemo } from 'react';
3
+ import require$$0, { useRef, useState, useEffect, useCallback, useMemo as useMemo$1 } from 'react';
4
4
  import { createPortal } from 'react-dom';
5
5
 
6
6
  const createStoreImpl = (createState) => {
@@ -11936,7 +11936,7 @@ const FeedbackList = ({ feedbackItems, onSelectFeedback, }) => {
11936
11936
  const { config } = useMarkupStore();
11937
11937
  const [statusFilter, setStatusFilter] = useState("all");
11938
11938
  const [sortBy, setSortBy] = useState("newest");
11939
- const filteredAndSortedItems = useMemo(() => {
11939
+ const filteredAndSortedItems = useMemo$1(() => {
11940
11940
  let items = [...feedbackItems];
11941
11941
  // Filter by status
11942
11942
  if (statusFilter !== "all") {
@@ -37511,35 +37511,39 @@ const useFirebaseSync = () => {
37511
37511
 
37512
37512
  const MarkupWidget = ({ config: userConfig, }) => {
37513
37513
  var _a;
37514
+ // Initialize Firebase BEFORE any hooks run (using useMemo ensures this happens first)
37515
+ useMemo(() => {
37516
+ if ((userConfig === null || userConfig === void 0 ? void 0 : userConfig.firebaseConfig) && getApps().length === 0) {
37517
+ try {
37518
+ initializeFirebase(userConfig.firebaseConfig);
37519
+ console.log('Firebase initialized from MarkupWidget config');
37520
+ }
37521
+ catch (error) {
37522
+ console.error('Failed to initialize Firebase:', error);
37523
+ }
37524
+ }
37525
+ return null;
37526
+ }, [userConfig === null || userConfig === void 0 ? void 0 : userConfig.firebaseConfig]);
37514
37527
  const { isOpen, setIsOpen, activeTab, setActiveTab, selectedFeedback, setSelectedFeedback, feedbackItems, addFeedbackItem, config, setConfig, reset, isAuthenticated, currentUser, } = useMarkupStore();
37515
37528
  // Initialize Firebase sync
37516
37529
  useFirebaseSync();
37517
37530
  useEffect(() => {
37518
37531
  if (userConfig) {
37519
37532
  setConfig(userConfig);
37520
- // Auto-initialize Firebase if config provided and not already initialized
37521
- if (userConfig.firebaseConfig && getApps().length === 0) {
37522
- try {
37523
- initializeFirebase(userConfig.firebaseConfig);
37524
- }
37525
- catch (error) {
37526
- console.error('Failed to initialize Firebase:', error);
37527
- }
37528
- }
37529
37533
  }
37530
37534
  }, [userConfig, setConfig]);
37531
37535
  useEffect(() => {
37532
37536
  const handleKeyDown = (e) => {
37533
37537
  const shortcut = config.shortcut || "ctrl+shift+m";
37534
- const parts = shortcut.toLowerCase().split("+");
37535
- const ctrlRequired = parts.includes("ctrl") || parts.includes("control");
37536
- const shiftRequired = parts.includes("shift");
37537
- const altRequired = parts.includes("alt");
37538
- const key = parts[parts.length - 1];
37539
- if ((ctrlRequired ? e.ctrlKey || e.metaKey : true) &&
37540
- (shiftRequired ? e.shiftKey : true) &&
37541
- (altRequired ? e.altKey : true) &&
37542
- e.key.toLowerCase() === key) {
37538
+ const keys = shortcut.split("+").map((k) => k.trim().toLowerCase());
37539
+ const ctrl = keys.includes("ctrl");
37540
+ const shift = keys.includes("shift");
37541
+ const alt = keys.includes("alt");
37542
+ const key = keys[keys.length - 1];
37543
+ if (e.key.toLowerCase() === key &&
37544
+ e.ctrlKey === ctrl &&
37545
+ e.shiftKey === shift &&
37546
+ e.altKey === alt) {
37543
37547
  e.preventDefault();
37544
37548
  setIsOpen(!isOpen);
37545
37549
  }