mirror of
https://github.com/mastodon/mastodon.git
synced 2026-03-21 09:55:35 -05:00
Replace prettier with oxfmt (#37893)
Some checks failed
Check i18n / check-i18n (push) Waiting to run
Chromatic / Check for relevant changes (push) Waiting to run
Chromatic / Run Chromatic (push) Blocked by required conditions
CodeQL / Analyze (actions) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Crowdin / Upload translations / upload-translations (push) Waiting to run
Check formatting / lint (push) Waiting to run
CSS Linting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / test (3.3) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.3) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.3, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Bundler Audit / security (push) Has been cancelled
Haml Linting / lint (push) Has been cancelled
Some checks failed
Check i18n / check-i18n (push) Waiting to run
Chromatic / Check for relevant changes (push) Waiting to run
Chromatic / Run Chromatic (push) Blocked by required conditions
CodeQL / Analyze (actions) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Crowdin / Upload translations / upload-translations (push) Waiting to run
Check formatting / lint (push) Waiting to run
CSS Linting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / test (3.3) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.3) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.3, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Bundler Audit / security (push) Has been cancelled
Haml Linting / lint (push) Has been cancelled
This commit is contained in:
parent
8e7c3973dc
commit
e24737c612
2
.github/workflows/format-check.yml
vendored
2
.github/workflows/format-check.yml
vendored
|
|
@ -18,5 +18,5 @@ jobs:
|
|||
- name: Set up Javascript environment
|
||||
uses: ./.github/actions/setup-javascript
|
||||
|
||||
- name: Check formatting with Prettier
|
||||
- name: Check formatting
|
||||
run: yarn format:check
|
||||
|
|
|
|||
92
.oxfmtrc.json
Normal file
92
.oxfmtrc.json
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
{
|
||||
"$schema": "./node_modules/oxfmt/configuration_schema.json",
|
||||
"singleQuote": true,
|
||||
"jsxSingleQuote": true,
|
||||
"printWidth": 80,
|
||||
"ignorePatterns": [
|
||||
"/tmp",
|
||||
"/coverage",
|
||||
"/public/assets",
|
||||
"/public/emoji",
|
||||
"/public/packs",
|
||||
"/public/packs-test",
|
||||
"/public/system",
|
||||
"/public/vite*",
|
||||
|
||||
"*.html",
|
||||
"docker-compose.override.yml",
|
||||
|
||||
// Ignore config YAML files that include ERB/ruby code
|
||||
"config/email.yml",
|
||||
|
||||
// Vendored CSS
|
||||
"app/javascript/styles/mastodon/reset.scss",
|
||||
|
||||
// Automatically generated
|
||||
"/app/javascript/mastodon/features/emoji/emoji_map.json",
|
||||
"/app/javascript/mastodon/features/emoji/emoji_data.json",
|
||||
"AUTHORS.md",
|
||||
"/app/javascript/mastodon/locales/*.json",
|
||||
"/config/locales",
|
||||
".storybook/static/mockServiceWorker.js",
|
||||
|
||||
// do not reformat JS files as this will change too many files and cause merge conflicts with open PRs and forks
|
||||
"app/javascript/**/*.js",
|
||||
"app/javascript/**/*.jsx",
|
||||
"streaming/**/*.js"
|
||||
],
|
||||
"experimentalSortPackageJson": false,
|
||||
"experimentalSortImports": {
|
||||
"groups": [
|
||||
["builtin"],
|
||||
["react"],
|
||||
["react-intl"],
|
||||
["react-utils"],
|
||||
["redux"],
|
||||
["external", "type-external"],
|
||||
["internal", "type-internal"],
|
||||
["mastodon-internals"],
|
||||
["parent", "type-parent"],
|
||||
["sibling", "type-sibling", "index", "type-index"],
|
||||
["side_effect"]
|
||||
],
|
||||
"customGroups": [
|
||||
{
|
||||
"groupName": "react",
|
||||
"elementNamePattern": [
|
||||
"react",
|
||||
"react-dom",
|
||||
"react-dom/client",
|
||||
"prop-types"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "react-intl",
|
||||
"elementNamePattern": ["react-intl", "intl-messageformat"]
|
||||
},
|
||||
{
|
||||
"groupName": "react-utils",
|
||||
"elementNamePattern": [
|
||||
"classnames",
|
||||
"react-helmet",
|
||||
"react-router",
|
||||
"react-router-dom"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "redux",
|
||||
"elementNamePattern": [
|
||||
"immutable",
|
||||
"@reduxjs/toolkit",
|
||||
"react-redux",
|
||||
"react-immutable-proptypes",
|
||||
"react-immutable-pure-component"
|
||||
]
|
||||
},
|
||||
{
|
||||
"groupName": "mastodon-internals",
|
||||
"elementNamePattern": ["mastodon/**", "@/**"]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,86 +0,0 @@
|
|||
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
||||
#
|
||||
# If you find yourself ignoring temporary files generated by your text editor
|
||||
# or operating system, you probably want to add a global ignore instead:
|
||||
# git config --global core.excludesfile '~/.gitignore_global'
|
||||
|
||||
# Ignore bundler config and downloaded libraries.
|
||||
/.bundle
|
||||
/vendor/bundle
|
||||
|
||||
# Ignore the default SQLite database.
|
||||
/db/*.sqlite3
|
||||
/db/*.sqlite3-journal
|
||||
|
||||
# Ignore all logfiles and tempfiles.
|
||||
.eslintcache
|
||||
/log/*
|
||||
!/log/.keep
|
||||
/tmp
|
||||
/coverage
|
||||
.env
|
||||
.env.production
|
||||
.env.development
|
||||
/node_modules/
|
||||
/build/
|
||||
|
||||
# Ignore Vagrant files
|
||||
.vagrant/
|
||||
|
||||
# Ignore IDE files
|
||||
.vscode/
|
||||
.idea/
|
||||
|
||||
# Ignore postgres + redis + elasticsearch volume optionally created by docker-compose
|
||||
/postgres
|
||||
/postgres14
|
||||
/redis
|
||||
/elasticsearch
|
||||
|
||||
# Ignore Apple files
|
||||
.DS_Store
|
||||
|
||||
# Ignore vim files
|
||||
*~
|
||||
*.swp
|
||||
|
||||
# Ignore log files
|
||||
*.log
|
||||
|
||||
# Ignore Docker option files
|
||||
docker-compose.override.yml
|
||||
|
||||
# Ignore public
|
||||
/public/assets
|
||||
/public/emoji
|
||||
/public/packs
|
||||
/public/packs-test
|
||||
/public/system
|
||||
/public/vite*
|
||||
|
||||
# Ignore emoji map file
|
||||
/app/javascript/mastodon/features/emoji/emoji_map.json
|
||||
/app/javascript/mastodon/features/emoji/emoji_data.json
|
||||
|
||||
# Ignore locale files
|
||||
/app/javascript/mastodon/locales/*.json
|
||||
/config/locales
|
||||
|
||||
# Ignore vendored CSS reset
|
||||
app/javascript/styles/mastodon/reset.scss
|
||||
|
||||
# Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631
|
||||
*.js
|
||||
*.jsx
|
||||
|
||||
# Ignore HTML till cleaned and included in CI
|
||||
*.html
|
||||
|
||||
# Ignore the generated AUTHORS.md
|
||||
AUTHORS.md
|
||||
|
||||
# Process a few selected JS files
|
||||
!lint-staged.config.js
|
||||
|
||||
# Ignore config YAML files that include ERB/ruby code prettier does not understand
|
||||
/config/email.yml
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
module.exports = {
|
||||
singleQuote: true,
|
||||
jsxSingleQuote: true
|
||||
};
|
||||
|
|
@ -21,9 +21,10 @@ import { reducerWithInitialState } from '@/mastodon/reducers';
|
|||
import { defaultMiddleware } from '@/mastodon/store/store';
|
||||
import { mockHandlers, unhandledRequestHandler } from '@/testing/api';
|
||||
|
||||
import { modes } from './modes';
|
||||
|
||||
import '../app/javascript/styles/application.scss';
|
||||
import './styles.css';
|
||||
import { modes } from './modes';
|
||||
|
||||
const localeFiles = import.meta.glob('@/mastodon/locales/*.json', {
|
||||
query: { as: 'json' },
|
||||
|
|
|
|||
|
|
@ -366,9 +366,9 @@ on('change', '#account_statuses_cleanup_policy_enabled', ({ target }) => {
|
|||
if (!(target instanceof HTMLInputElement) || !target.form) return;
|
||||
|
||||
target.form
|
||||
.querySelectorAll<
|
||||
HTMLInputElement | HTMLSelectElement
|
||||
>('input:not([type=hidden], #account_statuses_cleanup_policy_enabled), select')
|
||||
.querySelectorAll<HTMLInputElement | HTMLSelectElement>(
|
||||
'input:not([type=hidden], #account_statuses_cleanup_policy_enabled), select',
|
||||
)
|
||||
.forEach((input) => {
|
||||
setInputDisabled(input, !target.checked);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ import { useState, useCallback, useRef, useId } from 'react';
|
|||
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
|
||||
import Overlay from 'react-overlays/Overlay';
|
||||
import type {
|
||||
OffsetValue,
|
||||
UsePopperOptions,
|
||||
} from 'react-overlays/esm/usePopper';
|
||||
import Overlay from 'react-overlays/Overlay';
|
||||
|
||||
import { useSelectableClick } from 'mastodon/hooks/useSelectableClick';
|
||||
|
||||
|
|
|
|||
|
|
@ -13,12 +13,12 @@ import { Link } from 'react-router-dom';
|
|||
|
||||
import type { Map as ImmutableMap } from 'immutable';
|
||||
|
||||
import Overlay from 'react-overlays/Overlay';
|
||||
import type {
|
||||
OffsetValue,
|
||||
UsePopperOptions,
|
||||
Placement,
|
||||
} from 'react-overlays/esm/usePopper';
|
||||
import Overlay from 'react-overlays/Overlay';
|
||||
|
||||
import { fetchRelationships } from 'mastodon/actions/accounts';
|
||||
import {
|
||||
|
|
@ -90,7 +90,7 @@ export const DropdownMenuItemContent: React.FC<{ item: MenuItem }> = ({
|
|||
);
|
||||
};
|
||||
|
||||
export const DropdownMenu = <Item = MenuItem,>({
|
||||
export const DropdownMenu = <Item = MenuItem>({
|
||||
items,
|
||||
loading,
|
||||
scrollable,
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@ import { useEffect, useRef, useState, useCallback } from 'react';
|
|||
|
||||
import { useLocation } from 'react-router-dom';
|
||||
|
||||
import Overlay from 'react-overlays/Overlay';
|
||||
import type {
|
||||
OffsetValue,
|
||||
UsePopperOptions,
|
||||
} from 'react-overlays/esm/usePopper';
|
||||
import Overlay from 'react-overlays/Overlay';
|
||||
|
||||
import { HoverCardAccount } from 'mastodon/components/hover_card_account';
|
||||
import { useTimeout } from 'mastodon/hooks/useTimeout';
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@ import { useIntl, defineMessages } from 'react-intl';
|
|||
|
||||
import { useLocation } from 'react-router-dom';
|
||||
|
||||
import Overlay from 'react-overlays/Overlay';
|
||||
import type {
|
||||
OffsetValue,
|
||||
UsePopperOptions,
|
||||
} from 'react-overlays/esm/usePopper';
|
||||
import Overlay from 'react-overlays/Overlay';
|
||||
|
||||
import { DropdownMenu } from 'mastodon/components/dropdown_menu';
|
||||
import { useIdentity } from 'mastodon/identity_context';
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
const path = require('path');
|
||||
|
||||
const currentTranslations = require(path.join(__dirname, "../app/javascript/mastodon/locales/en.json"));
|
||||
const currentTranslations = require(
|
||||
path.join(__dirname, '../app/javascript/mastodon/locales/en.json'),
|
||||
);
|
||||
|
||||
exports.format = (msgs) => {
|
||||
const results = {};
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
import path from 'node:path';
|
||||
|
||||
import js from '@eslint/js';
|
||||
import { globalIgnores } from 'eslint/config';
|
||||
import formatjs from 'eslint-plugin-formatjs';
|
||||
import importPlugin from 'eslint-plugin-import';
|
||||
import jsdoc from 'eslint-plugin-jsdoc';
|
||||
|
|
@ -12,6 +11,7 @@ import promisePlugin from 'eslint-plugin-promise';
|
|||
import react from 'eslint-plugin-react';
|
||||
import reactHooks from 'eslint-plugin-react-hooks';
|
||||
import storybook from 'eslint-plugin-storybook';
|
||||
import { globalIgnores } from 'eslint/config';
|
||||
import globals from 'globals';
|
||||
import tseslint from 'typescript-eslint';
|
||||
|
||||
|
|
@ -90,57 +90,6 @@ export const baseConfig = [
|
|||
'import/no-relative-packages': 'error',
|
||||
'import/no-self-import': 'error',
|
||||
'import/no-useless-path-segments': 'error',
|
||||
'import/order': [
|
||||
'error',
|
||||
{
|
||||
alphabetize: {
|
||||
order: 'asc',
|
||||
},
|
||||
|
||||
'newlines-between': 'always',
|
||||
|
||||
groups: [
|
||||
'builtin',
|
||||
'external',
|
||||
'internal',
|
||||
'parent',
|
||||
['index', 'sibling'],
|
||||
'object',
|
||||
],
|
||||
|
||||
pathGroups: [
|
||||
{
|
||||
pattern: '{react,react-dom,react-dom/client,prop-types}',
|
||||
group: 'builtin',
|
||||
position: 'after',
|
||||
},
|
||||
{
|
||||
pattern: '{react-intl,intl-messageformat}',
|
||||
group: 'builtin',
|
||||
position: 'after',
|
||||
},
|
||||
{
|
||||
pattern:
|
||||
'{classnames,react-helmet,react-router,react-router-dom}',
|
||||
group: 'external',
|
||||
position: 'before',
|
||||
},
|
||||
{
|
||||
pattern:
|
||||
'{immutable,@reduxjs/toolkit,react-redux,react-immutable-proptypes,react-immutable-pure-component}',
|
||||
group: 'external',
|
||||
position: 'before',
|
||||
},
|
||||
{
|
||||
pattern: '{mastodon/**}',
|
||||
group: 'internal',
|
||||
position: 'after',
|
||||
},
|
||||
],
|
||||
|
||||
pathGroupsExcludedImportTypes: [],
|
||||
},
|
||||
],
|
||||
|
||||
'jsdoc/check-types': 'off',
|
||||
'jsdoc/no-undefined-types': 'off',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
const config = {
|
||||
'*': 'prettier --ignore-unknown --write',
|
||||
'*': 'oxfmt --no-error-on-unmatched-pattern',
|
||||
'Gemfile|*.{rb,ruby,ru,rake}': 'bin/rubocop --force-exclusion -a',
|
||||
'*.{js,jsx,ts,tsx}': 'eslint --fix',
|
||||
'*.{css,scss}': 'stylelint --fix',
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
"fix:js": "eslint . --cache --fix",
|
||||
"fix:css": "stylelint --fix \"**/*.{css,scss}\"",
|
||||
"fix": "yarn fix:js && yarn fix:css",
|
||||
"format": "prettier --write --log-level warn .",
|
||||
"format:check": "prettier --check --ignore-unknown .",
|
||||
"format": "oxfmt",
|
||||
"format:check": "oxfmt --check",
|
||||
"i18n:extract": "formatjs extract 'app/javascript/**/*.{js,jsx,ts,tsx}' config/vite/plugin-sw-locales.ts --ignore '**/*.d.ts' --out-file app/javascript/mastodon/locales/en.json --format config/formatjs-formatter.js",
|
||||
"lint:js": "cd $INIT_CWD && eslint --cache --report-unused-disable-directives",
|
||||
"lint:css": "stylelint \"**/*.{css,scss}\"",
|
||||
|
|
@ -180,8 +180,8 @@
|
|||
"lint-staged": "^16.2.6",
|
||||
"msw": "^2.12.1",
|
||||
"msw-storybook-addon": "^2.0.6",
|
||||
"oxfmt": "^0.33.0",
|
||||
"playwright": "^1.57.0",
|
||||
"prettier": "^3.3.3",
|
||||
"react-test-renderer": "^18.2.0",
|
||||
"storybook": "^10.0.5",
|
||||
"stylelint": "^17.0.0",
|
||||
|
|
|
|||
|
|
@ -21,7 +21,9 @@
|
|||
* @param {Map} map
|
||||
*/
|
||||
var generateId = function (map) {
|
||||
var id = 0, failCount = 0, idBuffer = new Uint32Array(1);
|
||||
var id = 0,
|
||||
failCount = 0,
|
||||
idBuffer = new Uint32Array(1);
|
||||
|
||||
while (id === 0 || map.has(id)) {
|
||||
id = crypto.getRandomValues(idBuffer)[0];
|
||||
|
|
@ -44,7 +46,11 @@
|
|||
window.addEventListener('message', function (e) {
|
||||
var data = e.data || {};
|
||||
|
||||
if (typeof data !== 'object' || data.type !== 'setHeight' || !embeds.has(data.id)) {
|
||||
if (
|
||||
typeof data !== 'object' ||
|
||||
data.type !== 'setHeight' ||
|
||||
!embeds.has(data.id)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -72,7 +78,7 @@
|
|||
});
|
||||
|
||||
// Legacy embeds
|
||||
document.querySelectorAll('iframe.mastodon-embed').forEach(iframe => {
|
||||
document.querySelectorAll('iframe.mastodon-embed').forEach((iframe) => {
|
||||
var id = generateId(embeds);
|
||||
|
||||
embeds.set(id, iframe);
|
||||
|
|
@ -84,44 +90,64 @@
|
|||
iframe.style.display = 'block';
|
||||
|
||||
iframe.onload = function () {
|
||||
iframe.contentWindow.postMessage({
|
||||
type: 'setHeight',
|
||||
id: id,
|
||||
}, '*');
|
||||
iframe.contentWindow.postMessage(
|
||||
{
|
||||
type: 'setHeight',
|
||||
id: id,
|
||||
},
|
||||
'*',
|
||||
);
|
||||
};
|
||||
|
||||
iframe.onload(); // In case the script is executing after the iframe has already loaded
|
||||
});
|
||||
|
||||
// New generation of embeds
|
||||
document.querySelectorAll('blockquote.mastodon-embed').forEach(container => {
|
||||
var id = generateId(embeds);
|
||||
document
|
||||
.querySelectorAll('blockquote.mastodon-embed')
|
||||
.forEach((container) => {
|
||||
var id = generateId(embeds);
|
||||
|
||||
embeds.set(id, container);
|
||||
embeds.set(id, container);
|
||||
|
||||
var iframe = document.createElement('iframe');
|
||||
var embedUrl = new URL(container.getAttribute('data-embed-url'));
|
||||
var iframe = document.createElement('iframe');
|
||||
var embedUrl = new URL(container.getAttribute('data-embed-url'));
|
||||
|
||||
if (embedUrl.protocol !== 'https:' && embedUrl.protocol !== 'http:') return;
|
||||
if (allowedPrefixes.every((allowedPrefix) => !embedUrl.toString().startsWith(allowedPrefix))) return;
|
||||
if (embedUrl.protocol !== 'https:' && embedUrl.protocol !== 'http:')
|
||||
return;
|
||||
if (
|
||||
allowedPrefixes.every(
|
||||
(allowedPrefix) => !embedUrl.toString().startsWith(allowedPrefix),
|
||||
)
|
||||
)
|
||||
return;
|
||||
|
||||
iframe.src = embedUrl.toString();
|
||||
iframe.width = container.clientWidth;
|
||||
iframe.height = 0;
|
||||
iframe.allow = 'fullscreen';
|
||||
iframe.sandbox = 'allow-scripts allow-same-origin allow-popups';
|
||||
iframe.style.border = 0;
|
||||
iframe.style.overflow = 'hidden';
|
||||
iframe.style.display = 'block';
|
||||
iframe.src = embedUrl.toString();
|
||||
iframe.width = container.clientWidth;
|
||||
iframe.height = 0;
|
||||
iframe.allow = 'fullscreen';
|
||||
iframe.sandbox = 'allow-scripts allow-same-origin allow-popups';
|
||||
iframe.style.border = 0;
|
||||
iframe.style.overflow = 'hidden';
|
||||
iframe.style.display = 'block';
|
||||
|
||||
iframe.onload = function () {
|
||||
iframe.contentWindow.postMessage({
|
||||
type: 'setHeight',
|
||||
id: id,
|
||||
}, '*');
|
||||
};
|
||||
iframe.onload = function () {
|
||||
iframe.contentWindow.postMessage(
|
||||
{
|
||||
type: 'setHeight',
|
||||
id: id,
|
||||
},
|
||||
'*',
|
||||
);
|
||||
};
|
||||
|
||||
container.appendChild(iframe);
|
||||
});
|
||||
container.appendChild(iframe);
|
||||
});
|
||||
});
|
||||
})((document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.dataset.allowedPrefixes) ? document.currentScript.dataset.allowedPrefixes.split(' ') : []);
|
||||
})(
|
||||
document.currentScript &&
|
||||
document.currentScript.tagName.toUpperCase() === 'SCRIPT' &&
|
||||
document.currentScript.dataset.allowedPrefixes
|
||||
? document.currentScript.dataset.allowedPrefixes.split(' ')
|
||||
: [],
|
||||
);
|
||||
|
|
|
|||
|
|
@ -36,20 +36,22 @@ module.exports = {
|
|||
'property-no-unknown': [
|
||||
true,
|
||||
{
|
||||
ignoreProperties: [
|
||||
'/^mso-/',
|
||||
] },
|
||||
ignoreProperties: ['/^mso-/'],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ['app/javascript/**/*.module.scss', 'app/javascript/**/*.module.css'],
|
||||
files: [
|
||||
'app/javascript/**/*.module.scss',
|
||||
'app/javascript/**/*.module.css',
|
||||
],
|
||||
rules: {
|
||||
'selector-pseudo-class-no-unknown': [
|
||||
true,
|
||||
{ ignorePseudoClasses: ['global'] },
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import path from 'node:path';
|
||||
import { readdir } from 'node:fs/promises';
|
||||
import path from 'node:path';
|
||||
|
||||
import { optimizeLodashImports } from '@optimize-lodash/rollup-plugin';
|
||||
import legacy from '@vitejs/plugin-legacy';
|
||||
|
|
@ -18,11 +18,11 @@ import { VitePWA } from 'vite-plugin-pwa';
|
|||
import svgr from 'vite-plugin-svgr';
|
||||
import tsconfigPaths from 'vite-tsconfig-paths';
|
||||
|
||||
import { MastodonServiceWorkerLocales } from './config/vite/plugin-sw-locales';
|
||||
import { MastodonAssetsManifest } from './config/vite/plugin-assets-manifest';
|
||||
import { MastodonEmojiCompressed } from './config/vite/plugin-emoji-compressed';
|
||||
import { MastodonThemes } from './config/vite/plugin-mastodon-themes';
|
||||
import { MastodonNameLookup } from './config/vite/plugin-name-lookup';
|
||||
import { MastodonAssetsManifest } from './config/vite/plugin-assets-manifest';
|
||||
import { MastodonServiceWorkerLocales } from './config/vite/plugin-sw-locales';
|
||||
|
||||
const jsRoot = path.resolve(__dirname, 'app/javascript');
|
||||
|
||||
|
|
|
|||
220
yarn.lock
220
yarn.lock
|
|
@ -2886,10 +2886,10 @@ __metadata:
|
|||
marky: "npm:^1.2.5"
|
||||
msw: "npm:^2.12.1"
|
||||
msw-storybook-addon: "npm:^2.0.6"
|
||||
oxfmt: "npm:^0.33.0"
|
||||
path-complete-extname: "npm:^1.0.0"
|
||||
playwright: "npm:^1.57.0"
|
||||
postcss-preset-env: "npm:^11.0.0"
|
||||
prettier: "npm:^3.3.3"
|
||||
prop-types: "npm:^15.8.1"
|
||||
punycode: "npm:^2.3.0"
|
||||
react: "npm:^18.2.0"
|
||||
|
|
@ -3124,6 +3124,139 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-android-arm-eabi@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-android-arm-eabi@npm:0.33.0"
|
||||
conditions: os=android & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-android-arm64@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-android-arm64@npm:0.33.0"
|
||||
conditions: os=android & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-darwin-arm64@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-darwin-arm64@npm:0.33.0"
|
||||
conditions: os=darwin & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-darwin-x64@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-darwin-x64@npm:0.33.0"
|
||||
conditions: os=darwin & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-freebsd-x64@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-freebsd-x64@npm:0.33.0"
|
||||
conditions: os=freebsd & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-linux-arm-gnueabihf@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-linux-arm-gnueabihf@npm:0.33.0"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-linux-arm-musleabihf@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-linux-arm-musleabihf@npm:0.33.0"
|
||||
conditions: os=linux & cpu=arm
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-linux-arm64-gnu@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-linux-arm64-gnu@npm:0.33.0"
|
||||
conditions: os=linux & cpu=arm64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-linux-arm64-musl@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-linux-arm64-musl@npm:0.33.0"
|
||||
conditions: os=linux & cpu=arm64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-linux-ppc64-gnu@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-linux-ppc64-gnu@npm:0.33.0"
|
||||
conditions: os=linux & cpu=ppc64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-linux-riscv64-gnu@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-linux-riscv64-gnu@npm:0.33.0"
|
||||
conditions: os=linux & cpu=riscv64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-linux-riscv64-musl@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-linux-riscv64-musl@npm:0.33.0"
|
||||
conditions: os=linux & cpu=riscv64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-linux-s390x-gnu@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-linux-s390x-gnu@npm:0.33.0"
|
||||
conditions: os=linux & cpu=s390x & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-linux-x64-gnu@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-linux-x64-gnu@npm:0.33.0"
|
||||
conditions: os=linux & cpu=x64 & libc=glibc
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-linux-x64-musl@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-linux-x64-musl@npm:0.33.0"
|
||||
conditions: os=linux & cpu=x64 & libc=musl
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-openharmony-arm64@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-openharmony-arm64@npm:0.33.0"
|
||||
conditions: os=openharmony & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-win32-arm64-msvc@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-win32-arm64-msvc@npm:0.33.0"
|
||||
conditions: os=win32 & cpu=arm64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-win32-ia32-msvc@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-win32-ia32-msvc@npm:0.33.0"
|
||||
conditions: os=win32 & cpu=ia32
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@oxfmt/binding-win32-x64-msvc@npm:0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "@oxfmt/binding-win32-x64-msvc@npm:0.33.0"
|
||||
conditions: os=win32 & cpu=x64
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@parcel/watcher-android-arm64@npm:2.5.0":
|
||||
version: 2.5.0
|
||||
resolution: "@parcel/watcher-android-arm64@npm:2.5.0"
|
||||
|
|
@ -10274,6 +10407,75 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"oxfmt@npm:^0.33.0":
|
||||
version: 0.33.0
|
||||
resolution: "oxfmt@npm:0.33.0"
|
||||
dependencies:
|
||||
"@oxfmt/binding-android-arm-eabi": "npm:0.33.0"
|
||||
"@oxfmt/binding-android-arm64": "npm:0.33.0"
|
||||
"@oxfmt/binding-darwin-arm64": "npm:0.33.0"
|
||||
"@oxfmt/binding-darwin-x64": "npm:0.33.0"
|
||||
"@oxfmt/binding-freebsd-x64": "npm:0.33.0"
|
||||
"@oxfmt/binding-linux-arm-gnueabihf": "npm:0.33.0"
|
||||
"@oxfmt/binding-linux-arm-musleabihf": "npm:0.33.0"
|
||||
"@oxfmt/binding-linux-arm64-gnu": "npm:0.33.0"
|
||||
"@oxfmt/binding-linux-arm64-musl": "npm:0.33.0"
|
||||
"@oxfmt/binding-linux-ppc64-gnu": "npm:0.33.0"
|
||||
"@oxfmt/binding-linux-riscv64-gnu": "npm:0.33.0"
|
||||
"@oxfmt/binding-linux-riscv64-musl": "npm:0.33.0"
|
||||
"@oxfmt/binding-linux-s390x-gnu": "npm:0.33.0"
|
||||
"@oxfmt/binding-linux-x64-gnu": "npm:0.33.0"
|
||||
"@oxfmt/binding-linux-x64-musl": "npm:0.33.0"
|
||||
"@oxfmt/binding-openharmony-arm64": "npm:0.33.0"
|
||||
"@oxfmt/binding-win32-arm64-msvc": "npm:0.33.0"
|
||||
"@oxfmt/binding-win32-ia32-msvc": "npm:0.33.0"
|
||||
"@oxfmt/binding-win32-x64-msvc": "npm:0.33.0"
|
||||
tinypool: "npm:2.1.0"
|
||||
dependenciesMeta:
|
||||
"@oxfmt/binding-android-arm-eabi":
|
||||
optional: true
|
||||
"@oxfmt/binding-android-arm64":
|
||||
optional: true
|
||||
"@oxfmt/binding-darwin-arm64":
|
||||
optional: true
|
||||
"@oxfmt/binding-darwin-x64":
|
||||
optional: true
|
||||
"@oxfmt/binding-freebsd-x64":
|
||||
optional: true
|
||||
"@oxfmt/binding-linux-arm-gnueabihf":
|
||||
optional: true
|
||||
"@oxfmt/binding-linux-arm-musleabihf":
|
||||
optional: true
|
||||
"@oxfmt/binding-linux-arm64-gnu":
|
||||
optional: true
|
||||
"@oxfmt/binding-linux-arm64-musl":
|
||||
optional: true
|
||||
"@oxfmt/binding-linux-ppc64-gnu":
|
||||
optional: true
|
||||
"@oxfmt/binding-linux-riscv64-gnu":
|
||||
optional: true
|
||||
"@oxfmt/binding-linux-riscv64-musl":
|
||||
optional: true
|
||||
"@oxfmt/binding-linux-s390x-gnu":
|
||||
optional: true
|
||||
"@oxfmt/binding-linux-x64-gnu":
|
||||
optional: true
|
||||
"@oxfmt/binding-linux-x64-musl":
|
||||
optional: true
|
||||
"@oxfmt/binding-openharmony-arm64":
|
||||
optional: true
|
||||
"@oxfmt/binding-win32-arm64-msvc":
|
||||
optional: true
|
||||
"@oxfmt/binding-win32-ia32-msvc":
|
||||
optional: true
|
||||
"@oxfmt/binding-win32-x64-msvc":
|
||||
optional: true
|
||||
bin:
|
||||
oxfmt: bin/oxfmt
|
||||
checksum: 10c0/77f670459a26a14844bdc9b34e7e06eae0b787138e265e28fa011eb9181f232cf784cd1c40adca1416d2af3f5c1af1ed08d3815860bb4596edcb0c4e3773d1f3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"p-limit@npm:^3.0.2":
|
||||
version: 3.1.0
|
||||
resolution: "p-limit@npm:3.1.0"
|
||||
|
|
@ -11231,15 +11433,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"prettier@npm:^3.3.3":
|
||||
version: 3.7.4
|
||||
resolution: "prettier@npm:3.7.4"
|
||||
bin:
|
||||
prettier: bin/prettier.cjs
|
||||
checksum: 10c0/9675d2cd08eacb1faf1d1a2dbfe24bfab6a912b059fc9defdb380a408893d88213e794a40a2700bd29b140eb3172e0b07c852853f6e22f16f3374659a1a13389
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"pretty-bytes@npm:^5.3.0":
|
||||
version: 5.6.0
|
||||
resolution: "pretty-bytes@npm:5.6.0"
|
||||
|
|
@ -13495,6 +13688,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tinypool@npm:2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "tinypool@npm:2.1.0"
|
||||
checksum: 10c0/9fb1c760558c6264e0f4cfde96a63b12450b43f1730fbe6274aa24ddbdf488745c08924d0dea7a1303b47d555416a6415f2113898c69b6ecf731e75ac95238a5
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tinyrainbow@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "tinyrainbow@npm:2.0.0"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user