diff --git a/api/src/Sozsoft.Platform.HttpApi.Host/Controllers/SetupController.cs b/api/src/Sozsoft.Platform.HttpApi.Host/Controllers/SetupController.cs
index e8ed6f5..8a9eeba 100644
--- a/api/src/Sozsoft.Platform.HttpApi.Host/Controllers/SetupController.cs
+++ b/api/src/Sozsoft.Platform.HttpApi.Host/Controllers/SetupController.cs
@@ -125,10 +125,9 @@ public class SetupController : ControllerBase
{
try
{
- while (!reader.EndOfStream)
+ while (await reader.ReadLineAsync(ct) is { } line)
{
- var line = await reader.ReadLineAsync(ct);
- if (line != null) await Send(level, line);
+ await Send(level, line);
}
}
catch (OperationCanceledException) { }
diff --git a/api/src/Sozsoft.Platform.HttpApi.Host/DbStartup/SetupAppRunner.cs b/api/src/Sozsoft.Platform.HttpApi.Host/DbStartup/SetupAppRunner.cs
index fd48f18..dae9478 100644
--- a/api/src/Sozsoft.Platform.HttpApi.Host/DbStartup/SetupAppRunner.cs
+++ b/api/src/Sozsoft.Platform.HttpApi.Host/DbStartup/SetupAppRunner.cs
@@ -264,10 +264,9 @@ internal static class SetupAppRunner
{
try
{
- while (!reader.EndOfStream)
+ while (await reader.ReadLineAsync(ct) is { } line)
{
- var line = await reader.ReadLineAsync(ct);
- if (line != null) await Send(level, line);
+ await Send(level, line);
}
}
catch (OperationCanceledException) { }
diff --git a/ui/src/components/shared/DbMigrateLogPanel.tsx b/ui/src/components/shared/DbMigrateLogPanel.tsx
index 44b68d5..09dc8fe 100644
--- a/ui/src/components/shared/DbMigrateLogPanel.tsx
+++ b/ui/src/components/shared/DbMigrateLogPanel.tsx
@@ -61,7 +61,7 @@ function DbMigrateLogPanel({ onClose }: DbMigrateLogPanelProps) {
{logs.map((log, i) => (
- [{log.level}]
+ {String(i + 1).padStart(4, '0')}
{log.message}
))}
diff --git a/ui/src/views/developerKit/ComponentEditor.tsx b/ui/src/views/developerKit/ComponentEditor.tsx
index cc93449..125d687 100644
--- a/ui/src/views/developerKit/ComponentEditor.tsx
+++ b/ui/src/views/developerKit/ComponentEditor.tsx
@@ -209,7 +209,7 @@ export default ${pascalCaseName}Component;`
-
+
@@ -227,7 +227,7 @@ export default ${pascalCaseName}Component;`
{/* Save Button in Header */}
-
+
{
{/* Left: back + icon + title */}
-
+
@@ -218,7 +218,7 @@ const DynamicServiceEditor: React.FC = () => {
{/* Right: action buttons + swagger + publish */}
-
+
{
className="w-full lg:w-auto px-3 py-2 border border-slate-300 dark:border-gray-700 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100"
>
-
+
-
+
-
-
-
- {translate('::App.DeveloperKit.DynamicServices.NewService')}
-
-
+
+
+
+ {translate('::App.DeveloperKit.DynamicServices.NewService')}
+
+
{/* List */}
@@ -191,7 +195,9 @@ const DynamicServiceManager: React.FC = () => {
-
{service.name}
+
+ {service.name}
+
{
/>
{service.displayName && (
-
{service.displayName}
+
+ {service.displayName}
+
)}
{
{service.compilationStatus} ยท v{service.version}
{service.description && (
-
{service.description}
+
+ {service.description}
+
)}
{service.lastSuccessfulCompilation && (
@@ -252,7 +262,9 @@ const DynamicServiceManager: React.FC = () => {
- {searchTerm || filterStatus !== 'all' ? translate('::App.DeveloperKit.DynamicServices.NoResults') : translate('::App.DeveloperKit.DynamicServices.NoServicesYet')}
+ {searchTerm || filterStatus !== 'all'
+ ? translate('::App.DeveloperKit.DynamicServices.NoResults')
+ : translate('::App.DeveloperKit.DynamicServices.NoServicesYet')}
{searchTerm || filterStatus !== 'all'