إغلاق الشريط الجانبي افتراضيًا

:information_source: ملخص يسمح للمسؤولين بالتحكم في السلوك الافتراضي للشريط الجانبي في Discourse حسب المجموعة
:hammer_and_wrench: مستودع الكود GitHub - nathan-nz/closed-sidebar-by-default: Allows control of the default sidebar behaviour · GitHub
:question: دليل التثبيت كيفية تثبيت موضوع أو مكون موضوع
:open_book: جديد في مواضيع Discourse؟ دليل المبتدئين لاستخدام مواضيع Discourse

تثبيت مكون الموضوع هذا

يسمح هذا المكون البسيط للمسؤولين بالتحكم في السلوك الافتراضي للشريط الجانبي في Discourse حسب المجموعة.

ويستمر في احترام الحالة السابقة للشريط الجانبي لتلك المستخدم/الجهاز، مما يعني أنه عند إعادة التحميل يوفر تجربة متسقة ومريحة.

حالة الاستخدام

أكثر حالات الاستخدام شيوعاً هي واجهة مستخدم أنقى وأبسط للزوار العاديين. على سبيل المثال، إذا تم استخدامه في Discourse Meta، سيصل الأشخاص إلى هذا:

بدلاً من الواجهة الأكثر ازدحاماً:

الإعدادات

يوجد إعداد واحد، وهو محدد مجموعة بسيط. الافتراضي هو anonymous_users (المعرف 4)، ولكن يمكنك استخدام أي مجموعة أو مجموعات.

الامتنانات

شكر خاص لـ @don لإنشاء مكون الموضوع الأصلي الذي تم اشتقاق هذا منه:

8 إعجابات

نعم، كنت أستخدم نسخة دون منذ عدة أشهر وأحبها حقاً. أعتقد أنه عندما يأتي مستخدم جديد تماماً إلى الموقع، قد يكون الأمر محيراً بعض الشيء، حيث لا يعرف ما الذي ينظر إليه. إخفاء الشريط الجانبي يجعل واجهة المستخدم أقل إرباكاً. من وجهة نظري، بمجرد أن يزور الشخص الموقع عدة مرات، يعرف أين يبحث عن القائمة عندما يحتاجها.

أعجبني مفهوم إغلاق الشريط الجانبي بشكل افتراضي. ما هو الفرق بين مكوني الثيمين؟

لا يحتوي إصدار دون على إعداد للمجموعة

إعجابَين (2)

شكرًا جزيلاً لك. حاولت أن أعطيك إبهامًا للأعلى، لكنني أربكت الأمور بالنقر على القلب كثيرًا، وانتهى بي الأمر إلى الانتظار “54 ثانية”! ومن هنا هذه الرسالة القصيرة.

إعجاب واحد (1)

أستطيع أن أرى جاذبية إخفاء الشريط الجانبي بشكل افتراضي، خاصة على الشاشات الأصغر حيث كل مساحة صغيرة تُحدث فرقًا. ربما جعله تفضيلًا للمستخدم (أو تذكر الحالة الأخيرة) سيكون أفضل حل وسط، إذ يعتمد بعض الأشخاص على الشريط الجانبي باستمرار بينما نادرًا ما يستخدمه آخرون.

عادةً ما يتذكر الحالة الأخيرة. ومع ذلك، فإن هذا المكون يلغي ذلك عندما يكون نشطاً.

ربما توجد طريقة أذكى لجعله كذلك.

إعجاب واحد (1)

مرحباً :waving_hand:

شكراً لك @nathank على إنشاء موضوع لهذا المكون! :hugs:

أعتقد أن شيئاً مثل هذا يجب أن يعمل في الوقت الحالي. هذا النهج سيقوم بإغلاق الشريط الجانبي فقط عند التحميل الأولي، وبعدها سيعود إلى السلوك الافتراضي (تذكر تفضيلات المستخدم).

import { apiInitializer } from "discourse/lib/api";

const HIDE_SIDEBAR_KEY = "sidebar-hidden";
const INITIALIZED_KEY = "closed-sidebar-by-default-initialized";

export default apiInitializer("1.8.0", (api) => {
  const keyValueStore = api.container.lookup("service:key-value-store");
  const userGroups = settings.user_in_closed_sidebar_groups;

  if (userGroups) {
    if (!keyValueStore.getItem(INITIALIZED_KEY)) {
      keyValueStore.setItem(HIDE_SIDEBAR_KEY, "true");
      keyValueStore.setItem(INITIALIZED_KEY, "true");
    }
  } else {
    if (keyValueStore.getItem(INITIALIZED_KEY)) {
      keyValueStore.removeItem(HIDE_SIDEBAR_KEY);
      keyValueStore.removeItem(INITIALIZED_KEY);
    }
  }
});
إعجاب واحد (1)

إخفاء المكون للشريط الجانبي مرة أخرى عند تحديث الصفحة. سيكون من الرائع أن يكون هذا هو الوضع الافتراضي، ولكن تذكر أي تغييرات لاحقة.

إعجاب واحد (1)

شكرًا جزيلاً لك @Don!

لقد دمجته الآن في TC، ويعمل تمامًا كما هو معلن. تحسّن ملحوظ!!