
namespace FastReport.Web.Blazor.Components
{
    public partial class ReportContainer
    {
        private void ChangedPageWithoutArgs()
        {
            OnUpdate();
        }


        private void ChangedPage(int page)
        {
            WebReport.GotoPage(page);
            ChangedPageWithoutArgs();
        }


        private void Prepare()
        {
#if DIALOGS
            WebReport.Dialog.CheckDialogs();
#endif

            if (!WebReport.Canceled)
            {
                if (WebReport.Mode != WebReportMode.Dialog)
                {
                    if (!WebReport.ReportPrepared)
                    {
                        WebReport.Report.Prepare();

                        WebReport.SplitReportPagesByTabs();
                    }
                }
                else
                    WebReport.Report.PreparePhase1();
            }
        }

        /// <summary>
        /// Update ReportContainer
        /// </summary>
        internal void OnUpdate(bool needPrepare = false)
        {
            if (needPrepare)
                Prepare();
            StateHasChanged();
        }
    }
}
