refactor: align files tab with content tab design (#5621)
* fix: files.vue bugs before styling changes * feat: move files tab to shared layout structure * fix: qa * fix: qa * fix: bugs * fix: lint * fix: admonition cleanup with progress + actions * fix: cleanup * fix: modals * fix: admon title * fix: i18n standard * fix: lint + i18n pass * fix: remove transition * fix: type errors * feat: files tab in app * fix: qa * fix: backup item minmax * fix: use ContentPageHeader for server panel * fix: lint * fix: lint * fix: lint * feat: page leave safety * fix: lint * fix: cargo fmt fix * fix: blank in prod * fix: content card table stuff * Revert "fix: blank in prod" This reverts commit 74758fe185cf85a4a20355857f889cb091b97ace. * fix: import * feat: browse worlds/servers flow * fix: worlds tab parity with content tab * fix: perf bug + shader filter pill copy * feat: singleplayer filter * fix: ordering * fix: breadcrumbs * fix: lint * fix: qa * feat: store server proj id when adding to a non-linked instance * fix: lint * fix: i18n + qa * fix: conflict * qa: already installed modal + placeholders not server-specific * fix: qa * fix: add + edit server modals * fix: qa * fix: security * fix: devin flags * fix: lint * chore: change file to break build cache * fix: admon * fix: import path stuff * feat: qa * fix: fmt fmt idiot --------- Signed-off-by: Calum H. <calum@modrinth.com>
This commit is contained in:
71
packages/ui/src/utils/ace-mode-log.ts
Normal file
71
packages/ui/src/utils/ace-mode-log.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
import ace from 'ace-builds'
|
||||
|
||||
ace['define'](
|
||||
'ace/mode/mclog_highlight_rules',
|
||||
['require', 'exports', 'ace/lib/oop', 'ace/mode/text_highlight_rules'],
|
||||
function (require: any, exports: any) {
|
||||
const oop = require('ace/lib/oop')
|
||||
const TextHighlightRules = require('ace/mode/text_highlight_rules').TextHighlightRules
|
||||
|
||||
const MclogHighlightRules = function (this: any) {
|
||||
this.$rules = {
|
||||
start: [
|
||||
{
|
||||
token: 'comment.timestamp',
|
||||
regex: /^\[\d\d:\d\d:\d\d\]/.source,
|
||||
},
|
||||
{
|
||||
token: 'invalid.error',
|
||||
regex: /\[.+?\/ERROR\]:?/.source,
|
||||
},
|
||||
{
|
||||
token: 'keyword.warn',
|
||||
regex: /\[.+?\/WARN\]:?/.source,
|
||||
},
|
||||
{
|
||||
token: 'string.info',
|
||||
regex: /\[.+?\/INFO\]:/.source,
|
||||
},
|
||||
{
|
||||
token: 'support.command',
|
||||
regex: /: \/.+/.source,
|
||||
},
|
||||
{
|
||||
token: 'comment.stacktrace',
|
||||
regex: /\tat\s.+/.source,
|
||||
},
|
||||
{
|
||||
token: 'entity.name.function',
|
||||
regex: /\w+?\[\/\d+?\.\d+?\.\d+?\.\d+?:\d+?\]/.source,
|
||||
},
|
||||
{
|
||||
token: 'storage.chat',
|
||||
regex: /\[CHAT\]/.source,
|
||||
},
|
||||
],
|
||||
}
|
||||
this.normalizeRules()
|
||||
}
|
||||
|
||||
oop.inherits(MclogHighlightRules, TextHighlightRules)
|
||||
exports.MclogHighlightRules = MclogHighlightRules
|
||||
},
|
||||
)
|
||||
|
||||
ace['define'](
|
||||
'ace/mode/mclog',
|
||||
['require', 'exports', 'ace/lib/oop', 'ace/mode/text', 'ace/mode/mclog_highlight_rules'],
|
||||
function (require: any, exports: any) {
|
||||
const oop = require('ace/lib/oop')
|
||||
const TextMode = require('ace/mode/text').Mode
|
||||
const MclogHighlightRules = require('ace/mode/mclog_highlight_rules').MclogHighlightRules
|
||||
|
||||
const Mode = function (this: any) {
|
||||
this.HighlightRules = MclogHighlightRules
|
||||
}
|
||||
|
||||
oop.inherits(Mode, TextMode)
|
||||
exports.Mode = Mode
|
||||
},
|
||||
)
|
||||
@@ -1,3 +1,5 @@
|
||||
import 'ace-builds/esm-resolver'
|
||||
|
||||
import cssText from '@modrinth/assets/styles/ace.css?raw'
|
||||
import ace from 'ace-builds'
|
||||
|
||||
|
||||
@@ -470,10 +470,94 @@ export const commonMessages = defineMessages({
|
||||
id: 'label.plan-custom',
|
||||
defaultMessage: 'Custom',
|
||||
},
|
||||
copyLinkButton: {
|
||||
id: 'button.copy-link',
|
||||
defaultMessage: 'Copy link',
|
||||
},
|
||||
switchVersionButton: {
|
||||
id: 'button.switch-version',
|
||||
defaultMessage: 'Switch version',
|
||||
},
|
||||
updatingLabel: {
|
||||
id: 'label.updating',
|
||||
defaultMessage: 'Updating...',
|
||||
},
|
||||
deleteFailedLabel: {
|
||||
id: 'label.delete-failed',
|
||||
defaultMessage: 'Delete failed',
|
||||
},
|
||||
uploadFailedLabel: {
|
||||
id: 'label.upload-failed',
|
||||
defaultMessage: 'Upload failed',
|
||||
},
|
||||
renameFailedLabel: {
|
||||
id: 'label.rename-failed',
|
||||
defaultMessage: 'Rename failed',
|
||||
},
|
||||
moveFailedLabel: {
|
||||
id: 'label.move-failed',
|
||||
defaultMessage: 'Move failed',
|
||||
},
|
||||
createFailedLabel: {
|
||||
id: 'label.create-failed',
|
||||
defaultMessage: 'Create failed',
|
||||
},
|
||||
extractFailedLabel: {
|
||||
id: 'label.extract-failed',
|
||||
defaultMessage: 'Extract failed',
|
||||
},
|
||||
showFileButton: {
|
||||
id: 'button.show-file',
|
||||
defaultMessage: 'Show file',
|
||||
},
|
||||
enableButton: {
|
||||
id: 'button.enable',
|
||||
defaultMessage: 'Enable',
|
||||
},
|
||||
disableButton: {
|
||||
id: 'button.disable',
|
||||
defaultMessage: 'Disable',
|
||||
},
|
||||
renameButton: {
|
||||
id: 'button.rename',
|
||||
defaultMessage: 'Rename',
|
||||
},
|
||||
moveButton: {
|
||||
id: 'button.move',
|
||||
defaultMessage: 'Move',
|
||||
},
|
||||
extractButton: {
|
||||
id: 'button.extract',
|
||||
defaultMessage: 'Extract',
|
||||
},
|
||||
doneLabel: {
|
||||
id: 'label.done',
|
||||
defaultMessage: 'Done',
|
||||
},
|
||||
copyFilenameButton: {
|
||||
id: 'button.copy-filename',
|
||||
defaultMessage: 'Copy filename',
|
||||
},
|
||||
copyFullPathButton: {
|
||||
id: 'button.copy-full-path',
|
||||
defaultMessage: 'Copy full path',
|
||||
},
|
||||
copiedFilenameLabel: {
|
||||
id: 'label.copied-filename',
|
||||
defaultMessage: 'Copied filename',
|
||||
},
|
||||
copiedPathLabel: {
|
||||
id: 'label.copied-path',
|
||||
defaultMessage: 'Copied path',
|
||||
},
|
||||
openInFolderButton: {
|
||||
id: 'button.open-in-folder',
|
||||
defaultMessage: 'Open in folder',
|
||||
},
|
||||
downloadFailedLabel: {
|
||||
id: 'label.download-failed',
|
||||
defaultMessage: 'Download failed',
|
||||
},
|
||||
projectCreated: {
|
||||
id: 'project.about.details.created',
|
||||
defaultMessage: 'Created {date}',
|
||||
@@ -638,6 +722,14 @@ export const financialMessages = defineMessages({
|
||||
},
|
||||
})
|
||||
|
||||
const PROJECT_TYPE_ALIASES: Record<string, string> = {
|
||||
shaderpack: 'shader',
|
||||
}
|
||||
|
||||
export function normalizeProjectType(type: string): string {
|
||||
return PROJECT_TYPE_ALIASES[type] ?? type
|
||||
}
|
||||
|
||||
export const commonProjectTypeCategoryMessages = defineMessages({
|
||||
datapack: {
|
||||
id: 'project-type.datapack.category',
|
||||
|
||||
@@ -146,6 +146,8 @@ export function getEditorLanguage(ext: string): string {
|
||||
case 'cfg':
|
||||
case 'conf':
|
||||
return 'ini'
|
||||
case 'log':
|
||||
return 'mclog'
|
||||
default:
|
||||
return 'text'
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ export const SERVER_SORT_TYPES: SortType[] = [
|
||||
|
||||
const FILTER_FIELD_MAP: Record<string, string> = {
|
||||
server_content_type: 'minecraft_java_server.content.kind',
|
||||
server_game_version: 'minecraft_java_server.content.supported_game_versions',
|
||||
server_game_version: 'game_versions',
|
||||
server_status: 'minecraft_java_server.ping.data',
|
||||
server_region: 'minecraft_server.region',
|
||||
server_language: 'minecraft_server.languages',
|
||||
|
||||
Reference in New Issue
Block a user