+
{assets.map((asset) => (
{
className="absolute inset-0 transition-opacity duration-700 bg-center bg-cover"
style={{
backgroundImage: `url(${src})`,
-
- maskImage:
- 'linear-gradient(135deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.6) 40%, rgba(0, 0, 0, 0.3) 90%, rgba(0, 0, 0, 0) 100%)',
- WebkitMaskImage:
- 'linear-gradient(135deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.6) 40%, rgba(0, 0, 0, 0.3) 90%, rgba(0, 0, 0, 0) 100%)',
}}
/>
diff --git a/src/layouts/widgets-settings/tab-keys.ts b/src/layouts/widgets-settings/tab-keys.ts
index debde2632..2cf0b7e75 100644
--- a/src/layouts/widgets-settings/tab-keys.ts
+++ b/src/layouts/widgets-settings/tab-keys.ts
@@ -4,5 +4,6 @@ export enum WidgetTabKeys {
wigiArz = 'wigiArz',
news_settings = 'news_settings',
weather_settings = 'weather_settings',
+ combo_settings = 'combo_settings',
Pet = 'pet_settings',
}
diff --git a/src/layouts/widgets-settings/widget-settings-modal.tsx b/src/layouts/widgets-settings/widget-settings-modal.tsx
index 231b57cc1..e52503ed5 100644
--- a/src/layouts/widgets-settings/widget-settings-modal.tsx
+++ b/src/layouts/widgets-settings/widget-settings-modal.tsx
@@ -5,6 +5,7 @@ import { RssFeedSetting } from '../widgets/news/rss-feed-setting'
import { WeatherSetting } from '../widgets/weather/weather-setting'
import { WigiArzSetting } from '../widgets/wigi-arz/wigi-arz-setting'
import { WigiPadSetting } from '../widgets/wigi-pad/wigi-pad-setting'
+import { ComboSetting } from '../widgets/combo-widget/combo-setting'
import { WidgetTabKeys } from './tab-keys'
interface WidgetSettingModalConfig {
@@ -39,6 +40,11 @@ const WIDGET_SETTING_MODALS: Record
= {
size: 'lg',
Component: WigiPadSetting,
},
+ [WidgetTabKeys.combo_settings]: {
+ title: 'تنظیمات ویجت ترکیبی',
+ size: 'lg',
+ Component: ComboSetting,
+ },
}
interface WidgetSettingsModalProps {
diff --git a/src/layouts/widgets/combo-widget/combo-setting.tsx b/src/layouts/widgets/combo-widget/combo-setting.tsx
new file mode 100644
index 000000000..36076b5f0
--- /dev/null
+++ b/src/layouts/widgets/combo-widget/combo-setting.tsx
@@ -0,0 +1,68 @@
+import { useEffect, useState } from 'react'
+import { getFromStorage, setToStorage } from '@/common/storage'
+import { TabNavigation } from '@/components/ui'
+import { Icon } from '@/icons'
+import { WidgetSettingWrapper } from '@/layouts/widgets-settings/widget-settings-wrapper'
+import { RssFeedSetting } from '../news/rss-feed-setting'
+import { WigiArzSetting } from '../wigi-arz/wigi-arz-setting'
+
+type ComboSettingTab = 'currency' | 'news'
+
+interface ComboSettingProps {
+ instanceId?: string
+ size?: { w: number; h: number }
+}
+
+export function ComboSetting({ instanceId, size }: ComboSettingProps) {
+ const [activeTab, setActiveTab] = useState('currency')
+
+ useEffect(() => {
+ async function load() {
+ const savedTab = await getFromStorage('comboTabs')
+ if (savedTab === 'news' || savedTab === 'currency') {
+ setActiveTab(savedTab)
+ }
+ }
+
+ load()
+ }, [])
+
+ const handleTabChange = (tab: ComboSettingTab) => {
+ setActiveTab(tab)
+ setToStorage('comboTabs', tab)
+ }
+
+ return (
+
+
+
+ tabMode="simple"
+ activeTab={activeTab}
+ onTabClick={handleTabChange}
+ tabs={[
+ {
+ id: 'currency',
+ label: 'تنظیمات ارزها',
+ icon: ,
+ },
+ {
+ id: 'news',
+ label: 'تنظیمات اخبار',
+ icon: ,
+ },
+ ]}
+ size="medium"
+ className="w-full"
+ />
+
+
+ {activeTab === 'currency' ? (
+
+ ) : (
+
+ )}
+
+
+
+ )
+}
diff --git a/src/layouts/widgets/combo-widget/combo-widget.widget.tsx b/src/layouts/widgets/combo-widget/combo-widget.widget.tsx
index fa573c37e..48f770a77 100644
--- a/src/layouts/widgets/combo-widget/combo-widget.widget.tsx
+++ b/src/layouts/widgets/combo-widget/combo-widget.widget.tsx
@@ -1,27 +1,16 @@
import { useEffect, useState } from 'react'
import Analytics from '@/analytics'
import { getFromStorage, setToStorage } from '@/common/storage'
-import { callEvent } from '@/common/utils/call-event'
-import { WidgetTabKeys } from '@/layouts/widgets-settings/tab-keys'
import { NewsLayout } from '../news/news.widget'
import { WidgetContainer } from '../widget-container'
import { WigiArzLayout } from '../wigi-arz/wigi-arz.widget'
-import { Button, TabNavigation } from '@/components/ui'
+import { TabNavigation } from '@/components/ui'
import { Icon } from '@/icons'
export type ComboTabType = 'news' | 'currency'
export function ComboWidget() {
const [activeTab, setActiveTab] = useState(null)
- const handleSettingsClick = () => {
- if (activeTab === 'currency') {
- callEvent('openWidgetsSettings', { tab: WidgetTabKeys.wigiArz })
- } else {
- callEvent('openWidgetsSettings', { tab: WidgetTabKeys.news_settings })
- }
-
- Analytics.event(`combo_${activeTab}_settings_opened`)
- }
const onTabClick = (tab: ComboTabType) => {
if (tab === activeTab) return
@@ -78,15 +67,6 @@ export function ComboWidget() {
)}