@serhii.olishevskyi/docs 1.1.4 → 1.1.6

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.
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  UserPopoverComponent,
3
3
  UserPopoverComponent_default
4
- } from "./chunk-ERXHWCQ5.mjs";
4
+ } from "./chunk-UA57YNRJ.mjs";
5
5
  export {
6
6
  UserPopoverComponent,
7
7
  UserPopoverComponent_default as default
@@ -300,6 +300,19 @@ var trackUserSession = async (supabase, userId) => {
300
300
  { onConflict: "user_id, device_id" }
301
301
  );
302
302
  };
303
+ var trackUserSessionByRoute = async (supabase, userId, currentUrl) => {
304
+ const deviceId = getDeviceId();
305
+ await supabase.from("user_sessions").upsert(
306
+ {
307
+ user_id: userId,
308
+ device_id: deviceId,
309
+ user_agent: navigator.userAgent,
310
+ url: currentUrl || window.location.href,
311
+ last_seen_at: (/* @__PURE__ */ new Date()).toISOString()
312
+ },
313
+ { onConflict: "user_id, device_id" }
314
+ );
315
+ };
303
316
  var fetchUserSessions = async (supabase) => {
304
317
  const currentDeviceId = getDeviceId();
305
318
  const { data: { user } } = await supabase.auth.getUser();
@@ -2535,6 +2548,7 @@ var UserPopoverComponent_default = UserPopoverComponent;
2535
2548
  export {
2536
2549
  fetchCompanySessions,
2537
2550
  trackUserSession,
2551
+ trackUserSessionByRoute,
2538
2552
  fetchUserSessions,
2539
2553
  isCurrentSessionValid,
2540
2554
  groupSessionsByUser,
package/dist/index.d.mts CHANGED
@@ -519,6 +519,7 @@ declare const Services: {
519
519
  readonly SessionService: {
520
520
  readonly fetchCompanySessions: (supabase: _supabase_supabase_js.SupabaseClient, companyId: string, page?: number, pageSize?: number, searchQuery?: string) => Promise<FetchCompanySessionsResponse>;
521
521
  readonly trackUserSession: (supabase: _supabase_supabase_js.SupabaseClient, userId: string) => Promise<void>;
522
+ readonly trackUserSessionByRoute: (supabase: _supabase_supabase_js.SupabaseClient, userId: string, currentUrl?: string) => Promise<void>;
522
523
  readonly fetchUserSessions: (supabase: _supabase_supabase_js.SupabaseClient) => Promise<UserSessionItem[]>;
523
524
  readonly isCurrentSessionValid: (supabase: _supabase_supabase_js.SupabaseClient, userId: string) => Promise<boolean>;
524
525
  readonly groupSessionsByUser: (sessions: UserSessionItem[]) => UserGroupedSessions[];
@@ -527,4 +528,10 @@ declare const Services: {
527
528
  };
528
529
  };
529
530
 
530
- export { type AIConfig, type AIGenerateOptions, AIProvider, type AIProviderProps, type AIProviderType, AppSettingsProvider, AuthProvider, BreadcrumbProvider, type ConfirmOptions, type ConfirmResult, ConfirmationProvider, type ConfirmationProviderProps, type CopyClipboardButtonComponentProps as CopyClipboardButtonProps, type DialogSeverity, type DisplayState, type EmailInputComponentProps as EmailInputProps, type Language, LocalizationProvider, type MyAvatarComponentProps as MyAvatarProps, type NumberInputComponentProps as NumberInputProps, Providers, Services, type SupabaseConfig, SupabaseProvider, type SupabaseProviderProps, type TextFieldComponentProps as TextFieldProps, type ThemeColors, type ThemeConfig, type ThemeMode, ThemeProvider, ToastProvider, type ToastType, type TranslatableTooltipComponentProps as TranslatableTooltipProps, TranslateProvider, TranslateText, TranslationEditProvider, type TypographyConfig, UI, type UrlComponentProps as UrlProps, type UserAvatarComponentProps as UserAvatarProps, type UserGroupedSessions, type UserPopoverComponentProps as UserPopoverProps, type UserRoleChipComponentProps as UserRoleChipProps, type UserSessionItem, UserSettingsProvider, type UserStatusChipComponentProps as UserStatusChipProps, useAI, useAppSettings, useAppTheme, useAuth, useBreadcrumb, useConfirmation, useLocalization, useSupabase, useToast, useTranslationEdit, useTranslationNamespace, useUserSettings };
531
+ declare function useDebounce<T>(value: T, delay?: number): T;
532
+
533
+ declare const Hooks: {
534
+ readonly useDebounce: typeof useDebounce;
535
+ };
536
+
537
+ export { type AIConfig, type AIGenerateOptions, AIProvider, type AIProviderProps, type AIProviderType, AppSettingsProvider, AuthProvider, BreadcrumbProvider, type ConfirmOptions, type ConfirmResult, ConfirmationProvider, type ConfirmationProviderProps, type CopyClipboardButtonComponentProps as CopyClipboardButtonProps, type DialogSeverity, type DisplayState, type EmailInputComponentProps as EmailInputProps, Hooks, type Language, LocalizationProvider, type MyAvatarComponentProps as MyAvatarProps, type NumberInputComponentProps as NumberInputProps, Providers, Services, type SupabaseConfig, SupabaseProvider, type SupabaseProviderProps, type TextFieldComponentProps as TextFieldProps, type ThemeColors, type ThemeConfig, type ThemeMode, ThemeProvider, ToastProvider, type ToastType, type TranslatableTooltipComponentProps as TranslatableTooltipProps, TranslateProvider, TranslateText, TranslationEditProvider, type TypographyConfig, UI, type UrlComponentProps as UrlProps, type UserAvatarComponentProps as UserAvatarProps, type UserGroupedSessions, type UserPopoverComponentProps as UserPopoverProps, type UserRoleChipComponentProps as UserRoleChipProps, type UserSessionItem, UserSettingsProvider, type UserStatusChipComponentProps as UserStatusChipProps, useAI, useAppSettings, useAppTheme, useAuth, useBreadcrumb, useConfirmation, useLocalization, useSupabase, useToast, useTranslationEdit, useTranslationNamespace, useUserSettings };
package/dist/index.d.ts CHANGED
@@ -519,6 +519,7 @@ declare const Services: {
519
519
  readonly SessionService: {
520
520
  readonly fetchCompanySessions: (supabase: _supabase_supabase_js.SupabaseClient, companyId: string, page?: number, pageSize?: number, searchQuery?: string) => Promise<FetchCompanySessionsResponse>;
521
521
  readonly trackUserSession: (supabase: _supabase_supabase_js.SupabaseClient, userId: string) => Promise<void>;
522
+ readonly trackUserSessionByRoute: (supabase: _supabase_supabase_js.SupabaseClient, userId: string, currentUrl?: string) => Promise<void>;
522
523
  readonly fetchUserSessions: (supabase: _supabase_supabase_js.SupabaseClient) => Promise<UserSessionItem[]>;
523
524
  readonly isCurrentSessionValid: (supabase: _supabase_supabase_js.SupabaseClient, userId: string) => Promise<boolean>;
524
525
  readonly groupSessionsByUser: (sessions: UserSessionItem[]) => UserGroupedSessions[];
@@ -527,4 +528,10 @@ declare const Services: {
527
528
  };
528
529
  };
529
530
 
530
- export { type AIConfig, type AIGenerateOptions, AIProvider, type AIProviderProps, type AIProviderType, AppSettingsProvider, AuthProvider, BreadcrumbProvider, type ConfirmOptions, type ConfirmResult, ConfirmationProvider, type ConfirmationProviderProps, type CopyClipboardButtonComponentProps as CopyClipboardButtonProps, type DialogSeverity, type DisplayState, type EmailInputComponentProps as EmailInputProps, type Language, LocalizationProvider, type MyAvatarComponentProps as MyAvatarProps, type NumberInputComponentProps as NumberInputProps, Providers, Services, type SupabaseConfig, SupabaseProvider, type SupabaseProviderProps, type TextFieldComponentProps as TextFieldProps, type ThemeColors, type ThemeConfig, type ThemeMode, ThemeProvider, ToastProvider, type ToastType, type TranslatableTooltipComponentProps as TranslatableTooltipProps, TranslateProvider, TranslateText, TranslationEditProvider, type TypographyConfig, UI, type UrlComponentProps as UrlProps, type UserAvatarComponentProps as UserAvatarProps, type UserGroupedSessions, type UserPopoverComponentProps as UserPopoverProps, type UserRoleChipComponentProps as UserRoleChipProps, type UserSessionItem, UserSettingsProvider, type UserStatusChipComponentProps as UserStatusChipProps, useAI, useAppSettings, useAppTheme, useAuth, useBreadcrumb, useConfirmation, useLocalization, useSupabase, useToast, useTranslationEdit, useTranslationNamespace, useUserSettings };
531
+ declare function useDebounce<T>(value: T, delay?: number): T;
532
+
533
+ declare const Hooks: {
534
+ readonly useDebounce: typeof useDebounce;
535
+ };
536
+
537
+ export { type AIConfig, type AIGenerateOptions, AIProvider, type AIProviderProps, type AIProviderType, AppSettingsProvider, AuthProvider, BreadcrumbProvider, type ConfirmOptions, type ConfirmResult, ConfirmationProvider, type ConfirmationProviderProps, type CopyClipboardButtonComponentProps as CopyClipboardButtonProps, type DialogSeverity, type DisplayState, type EmailInputComponentProps as EmailInputProps, Hooks, type Language, LocalizationProvider, type MyAvatarComponentProps as MyAvatarProps, type NumberInputComponentProps as NumberInputProps, Providers, Services, type SupabaseConfig, SupabaseProvider, type SupabaseProviderProps, type TextFieldComponentProps as TextFieldProps, type ThemeColors, type ThemeConfig, type ThemeMode, ThemeProvider, ToastProvider, type ToastType, type TranslatableTooltipComponentProps as TranslatableTooltipProps, TranslateProvider, TranslateText, TranslationEditProvider, type TypographyConfig, UI, type UrlComponentProps as UrlProps, type UserAvatarComponentProps as UserAvatarProps, type UserGroupedSessions, type UserPopoverComponentProps as UserPopoverProps, type UserRoleChipComponentProps as UserRoleChipProps, type UserSessionItem, UserSettingsProvider, type UserStatusChipComponentProps as UserStatusChipProps, useAI, useAppSettings, useAppTheme, useAuth, useBreadcrumb, useConfirmation, useLocalization, useSupabase, useToast, useTranslationEdit, useTranslationNamespace, useUserSettings };
package/dist/index.js CHANGED
@@ -169,7 +169,7 @@ var init_deviceId = __esm({
169
169
  });
170
170
 
171
171
  // src/services/session.service.ts
172
- var fetchCompanySessions, trackUserSession, fetchUserSessions, isCurrentSessionValid, groupSessionsByUser, getUserLastSeenAt, getUsersLastSeenMap;
172
+ var fetchCompanySessions, trackUserSession, trackUserSessionByRoute, fetchUserSessions, isCurrentSessionValid, groupSessionsByUser, getUserLastSeenAt, getUsersLastSeenMap;
173
173
  var init_session_service = __esm({
174
174
  "src/services/session.service.ts"() {
175
175
  "use strict";
@@ -274,6 +274,19 @@ var init_session_service = __esm({
274
274
  { onConflict: "user_id, device_id" }
275
275
  );
276
276
  };
277
+ trackUserSessionByRoute = async (supabase, userId, currentUrl) => {
278
+ const deviceId = getDeviceId();
279
+ await supabase.from("user_sessions").upsert(
280
+ {
281
+ user_id: userId,
282
+ device_id: deviceId,
283
+ user_agent: navigator.userAgent,
284
+ url: currentUrl || window.location.href,
285
+ last_seen_at: (/* @__PURE__ */ new Date()).toISOString()
286
+ },
287
+ { onConflict: "user_id, device_id" }
288
+ );
289
+ };
277
290
  fetchUserSessions = async (supabase) => {
278
291
  const currentDeviceId = getDeviceId();
279
292
  const { data: { user } } = await supabase.auth.getUser();
@@ -2735,6 +2748,7 @@ __export(index_exports, {
2735
2748
  AuthProvider: () => AuthProvider,
2736
2749
  BreadcrumbProvider: () => BreadcrumbProvider,
2737
2750
  ConfirmationProvider: () => ConfirmationProvider,
2751
+ Hooks: () => Hooks,
2738
2752
  LocalizationProvider: () => LocalizationProvider,
2739
2753
  Providers: () => Providers,
2740
2754
  Services: () => Services,
@@ -4003,6 +4017,7 @@ var Services = {
4003
4017
  SessionService: {
4004
4018
  fetchCompanySessions,
4005
4019
  trackUserSession,
4020
+ trackUserSessionByRoute,
4006
4021
  fetchUserSessions,
4007
4022
  isCurrentSessionValid,
4008
4023
  groupSessionsByUser,
@@ -4010,6 +4025,26 @@ var Services = {
4010
4025
  getUsersLastSeenMap
4011
4026
  }
4012
4027
  };
4028
+
4029
+ // src/hooks/useDebounce.ts
4030
+ var import_react25 = require("react");
4031
+ function useDebounce(value, delay = 500) {
4032
+ const [debouncedValue, setDebouncedValue] = (0, import_react25.useState)(value);
4033
+ (0, import_react25.useEffect)(() => {
4034
+ const timer = setTimeout(() => {
4035
+ setDebouncedValue(value);
4036
+ }, delay);
4037
+ return () => {
4038
+ clearTimeout(timer);
4039
+ };
4040
+ }, [value, delay]);
4041
+ return debouncedValue;
4042
+ }
4043
+
4044
+ // src/hooks/index.ts
4045
+ var Hooks = {
4046
+ useDebounce
4047
+ };
4013
4048
  // Annotate the CommonJS export names for ESM import in node:
4014
4049
  0 && (module.exports = {
4015
4050
  AIProvider,
@@ -4017,6 +4052,7 @@ var Services = {
4017
4052
  AuthProvider,
4018
4053
  BreadcrumbProvider,
4019
4054
  ConfirmationProvider,
4055
+ Hooks,
4020
4056
  LocalizationProvider,
4021
4057
  Providers,
4022
4058
  Services,
package/dist/index.mjs CHANGED
@@ -26,6 +26,7 @@ import {
26
26
  groupSessionsByUser,
27
27
  isCurrentSessionValid,
28
28
  trackUserSession,
29
+ trackUserSessionByRoute,
29
30
  translationService,
30
31
  useAI,
31
32
  useAppSettings,
@@ -39,7 +40,7 @@ import {
39
40
  useTranslationEdit,
40
41
  useTranslationNamespace,
41
42
  useUserSettings
42
- } from "./chunk-ERXHWCQ5.mjs";
43
+ } from "./chunk-UA57YNRJ.mjs";
43
44
 
44
45
  // src/UI/components/inputs/TextFieldComponent.tsx
45
46
  import { useState } from "react";
@@ -737,7 +738,7 @@ var EmailInputComponent = ({
737
738
  import { useState as useState5, useEffect as useEffect2, lazy, Suspense } from "react";
738
739
  import { Avatar, Tooltip as Tooltip3, Typography as Typography2 } from "@mui/material";
739
740
  import { Fragment as Fragment4, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
740
- var LazyUserPopover = lazy(() => import("./UserPopoverComponent-ZG4UFBGJ.mjs"));
741
+ var LazyUserPopover = lazy(() => import("./UserPopoverComponent-5F4S3X4F.mjs"));
741
742
  var getInitials = (name) => {
742
743
  if (!name) return "?";
743
744
  const parts = name.trim().split(" ");
@@ -1279,6 +1280,7 @@ var Services = {
1279
1280
  SessionService: {
1280
1281
  fetchCompanySessions,
1281
1282
  trackUserSession,
1283
+ trackUserSessionByRoute,
1282
1284
  fetchUserSessions,
1283
1285
  isCurrentSessionValid,
1284
1286
  groupSessionsByUser,
@@ -1286,12 +1288,33 @@ var Services = {
1286
1288
  getUsersLastSeenMap
1287
1289
  }
1288
1290
  };
1291
+
1292
+ // src/hooks/useDebounce.ts
1293
+ import { useEffect as useEffect4, useState as useState8 } from "react";
1294
+ function useDebounce(value, delay = 500) {
1295
+ const [debouncedValue, setDebouncedValue] = useState8(value);
1296
+ useEffect4(() => {
1297
+ const timer = setTimeout(() => {
1298
+ setDebouncedValue(value);
1299
+ }, delay);
1300
+ return () => {
1301
+ clearTimeout(timer);
1302
+ };
1303
+ }, [value, delay]);
1304
+ return debouncedValue;
1305
+ }
1306
+
1307
+ // src/hooks/index.ts
1308
+ var Hooks = {
1309
+ useDebounce
1310
+ };
1289
1311
  export {
1290
1312
  AIProvider,
1291
1313
  AppSettingsProvider,
1292
1314
  AuthProvider,
1293
1315
  BreadcrumbProvider,
1294
1316
  ConfirmationProvider,
1317
+ Hooks,
1295
1318
  LocalizationProvider,
1296
1319
  Providers,
1297
1320
  Services,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serhii.olishevskyi/docs",
3
- "version": "1.1.4",
3
+ "version": "1.1.6",
4
4
  "description": "DOCS.UA react packages",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",