Skip to content

feat: Add updateOnLoad method for fragment immediate async update - #2065

Open
MKKMXD wants to merge 1 commit into
moonshine-software:4.xfrom
MKKMXD:feat-update-fragment-after-on-load
Open

MKKMXD wants to merge 1 commit into
moonshine-software:4.xfrom
MKKMXD:feat-update-fragment-after-on-load

Conversation

@MKKMXD

@MKKMXD MKKMXD commented Sep 9, 2026

Copy link
Copy Markdown

What was changed

Why?

Checklist

  • Issue #
  • Tested
    • Tested manually
    • Tests added
  • Documentation

@lee-to

lee-to commented Sep 10, 2026

Copy link
Copy Markdown
Member

Ну сейчас это зависимые методы, нельзя получается сделать updateOnLoad и получить просто обновление при старте без autoLoad, при это если забыть добавить autoLoad то вообще ничего не будет происходить, если мы делаем связанный функционал только лучше через параметр autoLoad($ms, $onLoad = false) но в идеале сделать их независимыми чтобы можно было просто добавить updateOnLoad и получить апдейт фрагмент без полинга

@korundKrona

korundKrona commented Sep 10, 2026 •

Copy link
Copy Markdown

Ну сейчас это зависимые методы, нельзя получается сделать updateOnLoad и получить просто обновление при старте без autoLoad, при это если забыть добавить autoLoad то вообще ничего не будет происходить, если мы делаем связанный функционал только лучше через параметр autoLoad($ms, $onLoad = false) но в идеале сделать их независимыми чтобы можно было просто добавить updateOnLoad и получить апдейт фрагмент без полинга

Да, ок.
Доработаю, тут еще момент есть, что нужно шаблон доработать и JS, во время тестирования появились ошибки.
Из-за того, что при обновление фрагмента, обновляется не тело фрагмента, а сам компонент, каждый раз выполняется событие init, и происходит бесконечное обновление. Правки залью сегодня вечером.

З.Ы. можно сказать, что у меня раздвоение личности, но так получилось

@MKKMXD
MKKMXD force-pushed the feat-update-fragment-after-on-load branch 2 times, most recently from ca88b2d to bd72c8b Compare September 10, 2026 20:57
Comment thread src/Crud/src/Components/Fragment.php Outdated
return $this;
}

public function autoUpdate(int $ms, bool $immediate = true): static

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

отсюда можно убрать раз есть отдельный независимый метод

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Убрал

Comment thread src/Crud/src/Components/Fragment.php Outdated
}

public function autoUpdate(int $ms): static
public function updateOnLoad(bool $enabled = true): static

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

давай тут сделаем как принято в проекте через $condition bool|Closure|null только распиши Closure через докблок

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я чет в примерах не нашел расписанный док блок, что имеешь ввиду

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Closure(bool): bool) смотри в исходниках, везде есть

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Спасибо, нашел

Comment thread src/UI/resources/js/Components/Fragment.js
@MKKMXD
MKKMXD force-pushed the feat-update-fragment-after-on-load branch 2 times, most recently from bd72c8b to 211e1e2 Compare September 11, 2026 20:27
Comment thread src/Crud/src/Components/Fragment.php Outdated
{
return [
'interval' => $this->interval,
'updateOnLoad' => $this->updateOnLoad,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ты вот тут делай запускай closure а не сразу в методе, иначе какой от нее толк, в чем отложенность то?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сделано

Comment thread src/Crud/src/Components/Fragment.php Outdated
);
}

public function updateOnLoad(Closure|bool|null $condition = null): static

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

**@PARAM (Closure(static): bool)|bool|null $condition = null **

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добавлено

Comment thread src/Crud/src/Components/Fragment.php Outdated

public function updateOnLoad(Closure|bool|null $condition = null): static
{
$this->updateOnLoad = value($condition, $this) ?? true;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

да какой смысл сразу колбек вызвать, вызывать надо во viewData, куча же примеров в коде с отложенным вызовом

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сделано

@lee-to

lee-to commented Oct 3, 2026

Copy link
Copy Markdown
Member

@MKKMXD @korundKrona ping

@MKKMXD
MKKMXD force-pushed the feat-update-fragment-after-on-load branch from 211e1e2 to 320a213 Compare October 4, 2026 18:43
@MKKMXD
MKKMXD force-pushed the feat-update-fragment-after-on-load branch from 320a213 to 62a2945 Compare October 5, 2026 16:04

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants