ariaieboy / filament-jalali-datetimepicker

a Drop-in Jalali Replacement for filament DateTimePicker
MIT License
23 stars 1 forks source link

اشکال در استفاده از پلاگین در فیلترها #16

Closed mszabeh closed 11 months ago

mszabeh commented 1 year ago

باسلام و تشکر از شما بیزحمت از این پلاگین در فیلتر استفاده کنید و نیتجه رو ببینید موقع استفاده از این پلاگین در فیلترها موقع باز شدن تقویم تقویم بلینک میزنه در فیلم زیر قابل مشاهده است. https://github.com/ariaieboy/filament-jalali-datetimepicker/assets/53317316/7550056b-3c86-434e-9e49-4d4c27ebacbf

mszabeh commented 1 year ago

یک مورد یادم رفت بگم در نسخه فیلامنت 2 مشکلی نداشتیم در نسخه 3 این اتفاق میفته

ariaieboy commented 1 year ago

یک ریپوزیتوری پابلیک درست کنید حداقل کدی که لازم هست تا این باگ reproduce بشه را داخلش بذارید لینکش اینجا بذارید تا بررسی کنم.

mszabeh commented 1 year ago

`public static function table(Table $table): Table { return $table ->striped() ->columns([ TextColumn::make("id") ->sortable() ->searchable(),

            TextColumn::make("title")
                ->label('عنوان')
                ->sortable()
                ->searchable()
                ->wrap(),

            TextColumn::make("status")
                ->label('وضعیت')
                ->sortable()
                ->badge()
                ->size('sm'),

            TextColumn::make('views')
                ->label('بازدید')
                ->sortable()
                ->size('xs'),

            TextColumn::make('created_at')
                ->label('تاریخ')
                ->sortable()
                ->size('sm'),
        ])
        ->filters([
            Filter::make('created_at')
                ->form([
                    DateTimePicker::make('created_from')
                        ->label('از تاریخ')
                        ->jalali()
                        ->firstDayOfWeek(6)
                        ->closeOnDateSelection()
                        ->native(false),
                    DateTimePicker::make('created_until')
                        ->label('تا تاریخ')
                        ->jalali()
                        ->firstDayOfWeek(6)
                        ->closeOnDateSelection()
                        ->native(false),
                ])
                ->query(function (Builder $query, array $data): Builder {
                    return $query
                        ->when(
                            $data['created_from'],
                            fn (Builder $query, $date): Builder => $query->where('created_at', '>=', $date),
                        )
                        ->when(
                            $data['created_until'],
                            fn (Builder $query, $date): Builder => $query->where('created_at', '<=', $date),
                        );
                })
                ->indicateUsing(function (array $data): array {
                    $indicators = [];
                    if ($data['created_from'] ?? null) {
                        $indicators['created_from'] = 'از تاریخ ' . verta($data['created_from'])->format('H:i - Y/m/d');
                    }
                    if ($data['created_until'] ?? null) {
                        $indicators['created_until'] = 'تا تاریخ' . verta($data['created_until'])->format('H:i - Y/m/d');
                    }
                    return $indicators;
                }),
        ]);
}

`

mszabeh commented 1 year ago

با این قسمت از کد میتونید تست کنید؟

ariaieboy commented 1 year ago

نگاه کنید در حالت کلی چیزی که ما نوشتیم برای استفاده در فرم ها بوده نه فیلتر و خب اگر بخواد در فیلتر ها استفاده بشه باید ما یک کلاس جدید تعریف کنیم. حالا به اینصورتی که شما نوشتید احتمالا بشه استفاده کرد ولی باید تست بشه. من سعی میکنم تا جمعه شب اگر وقت کردم روی این مشکل کار کنم اگر هم خودتان تونستید مشکل را پیدا کنید و رفع کنید خوشحال میشم PR بزنید.

mszabeh commented 1 year ago

بله حتما ممنون از شما

mszabeh commented 1 year ago

من یک اسکرین جدید میفرستم شاید در پیداکردن مشکل بتونه کمک کنه

https://github.com/ariaieboy/filament-jalali-datetimepicker/assets/53317316/beaf45c4-5bde-4120-94a4-bcd923b21518

یکی از توابع این قسمت کد رو استایل دهی میکنه <div x-ref="panel" در قسمت اینسپکت تو فیلم کامل مشخصه

mszabeh commented 1 year ago

یک نکته دیگه هم که شاید کمک کنه: وقتی دایرکشن رو روی حالت ltr میذاریم بدون مشکل اجرا میشه

ariaieboy commented 12 months ago

@mszabeh این باگ ربطی به پلاگین ما نداره کلا شما نسخه فیلامنت را هم استفاده کنید روی RTL این باگ را داره داخل ریپو رسمی فیلامنت این مشکل گزارش کنید به محض برطرف شدن این مسئله توی خود فیلامنت من هم بروز میکنم پلاگین.