> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerix.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# التحكم بالإصدارات في Next.js

> اطلب من المستخدمين إعادة التحميل لنشر جديد، أو اجعله إلزامياً، أو اعرض شاشة صيانة في تطبيق Next.js.

لمعرفة ما يقدّمه التحكم بالإصدارات وكيف تضبط القواعد في لوحة التحكم، راجع
[التحكم بالإصدارات](https://docs.lerix.dev/ar/modules/release-control/overview.md).

## الإعداد

يعمل التحكم بالإصدارات افتراضياً داخل `LerixNextProvider` الذي أعددته في
[التثبيت](https://docs.lerix.dev/ar/frameworks/nextjs/installation.md)، مع الشاشات الجاهزة. اضبط الإصدار وقت
البناء لتتمكن قواعد التحديث من مقارنة الإصدارات:

```bash .env.production theme={"dark"}
NEXT_PUBLIC_LERIX_RELEASE=1.4.0
```

استخدم إصداراً يحتوي على أرقام، مثل `1.4.0`، لا معرّف commit. ومن دون إصدار لا تنطبق
قواعد التحديث على الويب أبداً. أما وضع الصيانة فيعمل في الحالتين، ما لم تكن النافذة
مقصورة على إصدارات معينة.

لتغيير الإعدادات الافتراضية، مرّر `appControl` في `options` الخاصة بالمزوّد:

```tsx app/layout.tsx theme={"dark"}
<LerixNextProvider options={{ appControl: { enabled: true, ui: true } }}>
  {children}
</LerixNextProvider>
```

| الخيار | الافتراضي | الوصف |
| - | - | - |
| `appControl.enabled` | `true` | يتحقق من التحديثات والصيانة. `false` يوقف الوحدة. |
| `appControl.ui` | `true` | يعرض الشاشات الجاهزة. `false` يترك الرسم لك. |

## ما يراه المستخدمون

الشاشات نفسها التي في [React](https://docs.lerix.dev/ar/frameworks/react/release-control.md#ما-يراه-المستخدمون):
طبقة صيانة مع زر **حاول مرة أخرى**، وتحديث إلزامي يعيد تحميل الصفحة مرة كل 5 دقائق
على الأكثر ثم يعرض زر **إعادة التحميل**، وشريط قابل للإغلاق للتحديثات الاختيارية أو
المُوصى بها.

## شاشاتك الخاصة

اضبط `appControl: { ui: false }`، ثم استخدم `useLerixAppControl()` من مكوّن عميل
(client component). وهو يعمل كما في
[React](https://docs.lerix.dev/ar/frameworks/react/release-control.md#شاشاتك-الخاصة).

```tsx components/release-gate.tsx theme={"dark"}
'use client';
import { useLerixAppControl } from '@lerix-dev/lerix-nextjs';

export function ReleaseGate({ children }: { children: React.ReactNode }) {
  const { maintenance, update, refresh, openStore } = useLerixAppControl();

  if (maintenance) {
    return <Maintenance title={maintenance.title} onRetry={() => refresh()} />;
  }
  if (update?.state === 'required') {
    return <ForceUpdate message={update.message} onUpdate={() => openStore()} />;
  }
  return <>{children}</>;
}
```

ضع `ReleaseGate` داخل `LerixNextProvider` في التخطيط الجذري (root layout)، حول
`{children}`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.