Skip to content

Commit

Permalink
feat: display runtime version and commit hash for Expo Go
Browse files Browse the repository at this point in the history
  • Loading branch information
IZUMI-Zu committed Dec 14, 2024
1 parent 44d2b11 commit ea8ac87
Show file tree
Hide file tree
Showing 17 changed files with 1,410 additions and 1,486 deletions.
10 changes: 7 additions & 3 deletions .github/workflows/preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,8 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: "20"
cache: "npm"

- name: Install dependencies
run: npm install
Expand All @@ -93,9 +94,12 @@ jobs:
- name: Create preview
id: preview
uses: expo/expo-github-action/preview@v8
env:
EXPO_PUBLIC_COMMIT_HASH: ${{ steps.pr-details.outputs.head_sha.substring(0, 7)}}
EXPO_PUBLIC_CI: true
with:
comment: false
qr-target: 'expo-go'
qr-target: "expo-go"
github-token: ${{ secrets.GITHUB_TOKEN }}
command: eas update --auto --branch pr-${{ needs.check_permissions.outputs.pr_head_ref }}

Expand All @@ -104,7 +108,7 @@ jobs:
id: find_comment
with:
issue-number: ${{ needs.check_permissions.outputs.pr_number }}
comment-author: 'github-actions[bot]'
comment-author: "github-actions[bot]"
body-includes: Expo Preview

- name: Create or Update Comment
Expand Down
16 changes: 15 additions & 1 deletion SettingPage.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {Avatar, Button, IconButton, List, Surface, Text, useTheme} from "react-n
import {ActionSheetProvider} from "@expo/react-native-action-sheet";
import * as Application from "expo-application";
import {useTranslation} from "react-i18next";
import Constants, {ExecutionEnvironment} from "expo-constants";

import CasdoorLoginPage, {CasdoorLogout} from "./CasdoorLoginPage";
import LoginMethodSelector from "./LoginMethodSelector";
Expand All @@ -32,6 +33,7 @@ const SettingPage = () => {
const {userInfo, clearAll} = useStore();
const theme = useTheme();
const {t} = useTranslation();

const {openActionSheet} = LoginMethodSelector({
onSelectMethod: (method) => {
setLoginMethod(method);
Expand Down Expand Up @@ -106,10 +108,22 @@ const SettingPage = () => {

<List.Item
title={t("settings.Version")}
description={Application.nativeApplicationVersion}
description={
Constants.executionEnvironment === ExecutionEnvironment.Standalone
? Application.nativeApplicationVersion
: Constants.expoConfig?.version
}
left={props => <List.Icon {...props} icon="information" />}
/>

{process.env.EXPO_PUBLIC_CI === true && (
<List.Item
title={t("settings.Commit Hash")}
description={process.env.EXPO_PUBLIC_COMMIT_HASH || "N/A"}
left={props => <List.Icon {...props} icon="git" />}
/>
)}

</List.Section>
</Surface>

Expand Down
3 changes: 3 additions & 0 deletions app.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
"icon": "./assets/icon.png",
"userInterfaceStyle": "light",
"scheme": "casdoor-app",
"runtimeVersion": {
"policy": "appVersion"
},
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
Expand Down
192 changes: 96 additions & 96 deletions locales/ar/data.json
Original file line number Diff line number Diff line change
@@ -1,98 +1,98 @@
{
"common": {
"success": "نجاح",
"error": "خطأ",
"back": "رجوع",
"cancel": "إلغاء",
"confirm": "تأكيد",
"save": "حفظ",
"delete": "حذف",
"edit": "تعديل",
"login": "تسجيل الدخول",
"logout": "تسجيل الخروج"
},
"api": {
"Request timed out": "انتهت مهلة الطلب"
},
"casdoorLoginPage": {
"Logged in successfully!": "تم تسجيل الدخول بنجاح!",
"Back to Config": "العودة إلى الإعدادات"
},
"editAccount": {
"Enter new account name": "أدخل اسم الحساب الجديد",
"Account Name is required": "اسم الحساب مطلوب",
"Secret Key is required": "المفتاح السري مطلوب",
"Please fill in all the fields!": "يرجى ملء جميع الحقول!",
"Invalid Secret Key": "المفتاح السري غير صالح",
"Add Account": "إضافة حساب",
"Account Name": "اسم الحساب",
"Secret Key": "المفتاح السري",
"Time based": "مبني على الوقت",
"Counter based": "مبني على العداد"
},
"enterCasdoorSDKConfig": {
"Please fill in all the fields!": "يرجى ملء جميع الحقول!",
"Casdoor Configuration": "إعداد Casdoor",
"Server URL": "عنوان URL للخادم",
"Client ID": "معرّف العميل",
"Application Name": "اسم التطبيق",
"Organization Name": "اسم المنظمة"
},
"header": {
"Casdoor": "كاسدور",
"An unknown error occurred during synchronization": "حدث خطأ غير معروف أثناء المزامنة"
},
"homepage": {
"Import error": "خطأ في الاستيراد",
"Error scanning QR code": "خطأ في مسح رمز الاستجابة السريعة",
"Scan QR Code": "مسح رمز الاستجابة السريعة",
"Enter Secret Code": "أدخل الكود السري",
"Import from other app": "استيراد من تطبيق آخر"
},
"importManager": {
"Select app to import from": "حدد التطبيق للاستيراد منه",
"Import function not implemented for": "وظيفة الاستيراد غير متوفرة لـ"
},
"loginMethod": {
"Select Login Method": "اختر طريقة تسجيل الدخول",
"Manual Server Setup": "إعداد الخادم يدويًا",
"Login Using QR Code": "تسجيل الدخول باستخدام رمز الاستجابة السريعة",
"Try Casdoor Demo Site": "جرب موقع كاسدور التجريبي"
},
"msAuthImport": {
"Error creating directory": "خطأ في إنشاء الدليل",
"No data found in Microsoft Authenticator database": "لم يتم العثور على بيانات في قاعدة بيانات Microsoft Authenticator",
"file is not a database": "الملف ليس قاعدة بيانات",
"Error importing from Microsoft Authenticator": "خطأ في الاستيراد من Microsoft Authenticator"
},
"navBar": {
"Home": "الرئيسية",
"Settings": "الإعدادات"
},
"qrScanner": {
"Requesting permissions": "طلب الأذونات",
"No access to camera or media library": "لا يوجد وصول إلى الكاميرا أو مكتبة الوسائط",
"Choose Image": "اختر صورة"
},
"scanLogin": {
"Invalid QR code format": "تنسيق رمز الاستجابة السريعة غير صالح",
"Missing required fields: serverUrl and accessToken": "الحقول المطلوبة مفقودة: serverUrl و accessToken",
"Missing required fields": "الحقول المطلوبة مفقودة",
"Paste QR Code": "الصق رمز الاستجابة السريعة"
},
"searchBar": {
"Search": "بحث"
},
"settings": {
"Sign In": "تسجيل الدخول",
"Preferences": "التفضيلات",
"Language": "اللغة",
"About": "حول",
"Version": "الإصدار"
},
"syncLogic": {
"Sync failed": "فشل المزامنة",
"Access token has expired, please login again": "انتهت صلاحية رمز الوصول، يرجى تسجيل الدخول مرة أخرى"
}
"common": {
"success": "نجاح",
"error": "خطأ",
"back": "رجوع",
"cancel": "إلغاء",
"confirm": "تأكيد",
"save": "حفظ",
"delete": "حذف",
"edit": "تعديل",
"login": "تسجيل الدخول",
"logout": "تسجيل الخروج"
},
"api": {
"Request timed out": "انتهت مهلة الطلب"
},
"casdoorLoginPage": {
"Logged in successfully!": "تم تسجيل الدخول بنجاح!",
"Back to Config": "العودة إلى الإعدادات"
},
"editAccount": {
"Enter new account name": "أدخل اسم الحساب الجديد",
"Account Name is required": "اسم الحساب مطلوب",
"Secret Key is required": "المفتاح السري مطلوب",
"Please fill in all the fields!": "يرجى ملء جميع الحقول!",
"Invalid Secret Key": "المفتاح السري غير صالح",
"Add Account": "إضافة حساب",
"Account Name": "اسم الحساب",
"Secret Key": "المفتاح السري",
"Time based": "مبني على الوقت",
"Counter based": "مبني على العداد"
},
"enterCasdoorSDKConfig": {
"Please fill in all the fields!": "يرجى ملء جميع الحقول!",
"Casdoor Configuration": "إعداد Casdoor",
"Server URL": "عنوان URL للخادم",
"Client ID": "معرّف العميل",
"Application Name": "اسم التطبيق",
"Organization Name": "اسم المنظمة"
},
"header": {
"Casdoor": "كاسدور",
"An unknown error occurred during synchronization": "حدث خطأ غير معروف أثناء المزامنة"
},
"homepage": {
"Import error": "خطأ في الاستيراد",
"Error scanning QR code": "خطأ في مسح رمز الاستجابة السريعة",
"Scan QR Code": "مسح رمز الاستجابة السريعة",
"Enter Secret Code": "أدخل الكود السري",
"Import from other app": "استيراد من تطبيق آخر"
},
"importManager": {
"Select app to import from": "حدد التطبيق للاستيراد منه",
"Import function not implemented for": "وظيفة الاستيراد غير متوفرة لـ"
},
"loginMethod": {
"Select Login Method": "اختر طريقة تسجيل الدخول",
"Manual Server Setup": "إعداد الخادم يدويًا",
"Login Using QR Code": "تسجيل الدخول باستخدام رمز الاستجابة السريعة",
"Try Casdoor Demo Site": "جرب موقع كاسدور التجريبي"
},
"msAuthImport": {
"Error creating directory": "خطأ في إنشاء الدليل",
"No data found in Microsoft Authenticator database": "لم يتم العثور على بيانات في قاعدة بيانات Microsoft Authenticator",
"file is not a database": "الملف ليس قاعدة بيانات",
"Error importing from Microsoft Authenticator": "خطأ في الاستيراد من Microsoft Authenticator"
},
"navBar": {
"Home": "الرئيسية",
"Settings": "الإعدادات"
},
"qrScanner": {
"Requesting permissions": "طلب الأذونات",
"No access to camera or media library": "لا يوجد وصول إلى الكاميرا أو مكتبة الوسائط",
"Choose Image": "اختر صورة"
},
"scanLogin": {
"Invalid QR code format": "تنسيق رمز الاستجابة السريعة غير صالح",
"Missing required fields: serverUrl and accessToken": "الحقول المطلوبة مفقودة: serverUrl و accessToken",
"Missing required fields": "الحقول المطلوبة مفقودة",
"Paste QR Code": "الصق رمز الاستجابة السريعة"
},
"searchBar": {
"Search": "بحث"
},
"settings": {
"Sign In": "تسجيل الدخول",
"Preferences": "التفضيلات",
"Language": "اللغة",
"About": "حول",
"Version": "الإصدار",
"Commit Hash": "رمز التعديل"
},
"syncLogic": {
"Sync failed": "فشل المزامنة",
"Access token has expired, please login again": "انتهت صلاحية رمز الوصول، يرجى تسجيل الدخول مرة أخرى"
}
}
Loading

0 comments on commit ea8ac87

Please sign in to comment.