Compare commits
No commits in common. "db73f1a3dc1e628169dca8f51140c8dad5174bf2" and "c32dda484946e2d4eec95d322daee0ef9ae34c6f" have entirely different histories.
db73f1a3dc
...
c32dda4849
187 changed files with 552 additions and 1278 deletions
|
|
@ -1,12 +0,0 @@
|
||||||
node_modules/
|
|
||||||
dist/
|
|
||||||
logs/
|
|
||||||
.DS_Store
|
|
||||||
.git/
|
|
||||||
config/local.json
|
|
||||||
pleroma-backend/
|
|
||||||
test/e2e/reports/
|
|
||||||
test/e2e-playwright/test-results/
|
|
||||||
test/e2e-playwright/playwright-report/
|
|
||||||
__screenshots__/
|
|
||||||
|
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -4,11 +4,8 @@ dist/
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
test/unit/coverage
|
test/unit/coverage
|
||||||
test/e2e/reports
|
test/e2e/reports
|
||||||
test/e2e-playwright/test-results
|
|
||||||
test/e2e-playwright/playwright-report
|
|
||||||
selenium-debug.log
|
selenium-debug.log
|
||||||
.idea/
|
.idea/
|
||||||
.gitlab-ci-local/
|
|
||||||
config/local.json
|
config/local.json
|
||||||
src/assets/emoji.json
|
src/assets/emoji.json
|
||||||
logs/
|
logs/
|
||||||
|
|
|
||||||
129
.gitlab-ci.yml
129
.gitlab-ci.yml
|
|
@ -71,135 +71,6 @@ test:
|
||||||
- test/**/__screenshots__
|
- test/**/__screenshots__
|
||||||
when: on_failure
|
when: on_failure
|
||||||
|
|
||||||
e2e-pleroma:
|
|
||||||
stage: test
|
|
||||||
image: mcr.microsoft.com/playwright:v1.57.0-jammy
|
|
||||||
services:
|
|
||||||
- name: postgres:15-alpine
|
|
||||||
alias: db
|
|
||||||
- name: $PLEROMA_IMAGE
|
|
||||||
alias: pleroma
|
|
||||||
entrypoint: ["/bin/ash", "-c"]
|
|
||||||
command:
|
|
||||||
- |
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
SEED_SENTINEL_PATH=/var/lib/pleroma/.e2e_seeded
|
|
||||||
CONFIG_OVERRIDE_PATH=/var/lib/pleroma/config.exs
|
|
||||||
|
|
||||||
echo '-- Waiting for database...'
|
|
||||||
while ! pg_isready -U ${DB_USER:-pleroma} -d postgres://${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-pleroma} -t 1; do
|
|
||||||
sleep 1s
|
|
||||||
done
|
|
||||||
|
|
||||||
echo '-- Writing E2E config overrides...'
|
|
||||||
cat > $CONFIG_OVERRIDE_PATH <<EOF
|
|
||||||
import Config
|
|
||||||
|
|
||||||
config :pleroma, Pleroma.Captcha,
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
config :pleroma, :instance,
|
|
||||||
registrations_open: true,
|
|
||||||
account_activation_required: false,
|
|
||||||
approval_required: false
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo '-- Running migrations...'
|
|
||||||
/opt/pleroma/bin/pleroma_ctl migrate
|
|
||||||
|
|
||||||
echo '-- Starting!'
|
|
||||||
/opt/pleroma/bin/pleroma start &
|
|
||||||
PLEROMA_PID=$!
|
|
||||||
|
|
||||||
cleanup() {
|
|
||||||
if kill -0 $PLEROMA_PID 2>/dev/null; then
|
|
||||||
kill -TERM $PLEROMA_PID
|
|
||||||
wait $PLEROMA_PID || true
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
trap cleanup INT TERM
|
|
||||||
|
|
||||||
echo '-- Waiting for API...'
|
|
||||||
api_ok=false
|
|
||||||
for _i in $(seq 1 120); do
|
|
||||||
if wget -qO- http://127.0.0.1:4000/api/v1/instance >/dev/null 2>&1; then
|
|
||||||
api_ok=true
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 1s
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $api_ok != true ]; then
|
|
||||||
echo 'Timed out waiting for Pleroma API to become available'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f $SEED_SENTINEL_PATH ]; then
|
|
||||||
if [ -n ${E2E_ADMIN_USERNAME:-} ] && [ -n ${E2E_ADMIN_PASSWORD:-} ] && [ -n ${E2E_ADMIN_EMAIL:-} ]; then
|
|
||||||
echo '-- Seeding admin user' $E2E_ADMIN_USERNAME '...'
|
|
||||||
if ! /opt/pleroma/bin/pleroma_ctl user new $E2E_ADMIN_USERNAME $E2E_ADMIN_EMAIL --admin --password $E2E_ADMIN_PASSWORD -y; then
|
|
||||||
echo '-- User already exists or creation failed, ensuring admin + confirmed...'
|
|
||||||
/opt/pleroma/bin/pleroma_ctl user set $E2E_ADMIN_USERNAME --admin --confirmed
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo '-- Skipping admin seeding (missing E2E_ADMIN_* env)'
|
|
||||||
fi
|
|
||||||
|
|
||||||
touch $SEED_SENTINEL_PATH
|
|
||||||
fi
|
|
||||||
|
|
||||||
wait $PLEROMA_PID
|
|
||||||
tags:
|
|
||||||
- amd64
|
|
||||||
- himem
|
|
||||||
variables:
|
|
||||||
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "1"
|
|
||||||
FF_NETWORK_PER_BUILD: "true"
|
|
||||||
PLEROMA_IMAGE: git.pleroma.social:5050/pleroma/pleroma:stable
|
|
||||||
POSTGRES_USER: pleroma
|
|
||||||
POSTGRES_PASSWORD: pleroma
|
|
||||||
POSTGRES_DB: pleroma
|
|
||||||
DB_USER: pleroma
|
|
||||||
DB_PASS: pleroma
|
|
||||||
DB_NAME: pleroma
|
|
||||||
DB_HOST: db
|
|
||||||
DB_PORT: 5432
|
|
||||||
DOMAIN: localhost
|
|
||||||
INSTANCE_NAME: Pleroma E2E
|
|
||||||
E2E_ADMIN_USERNAME: admin
|
|
||||||
E2E_ADMIN_PASSWORD: adminadmin
|
|
||||||
E2E_ADMIN_EMAIL: admin@example.com
|
|
||||||
ADMIN_EMAIL: $E2E_ADMIN_EMAIL
|
|
||||||
NOTIFY_EMAIL: $E2E_ADMIN_EMAIL
|
|
||||||
VITE_PROXY_TARGET: http://pleroma:4000
|
|
||||||
VITE_PROXY_ORIGIN: http://localhost:4000
|
|
||||||
E2E_BASE_URL: http://localhost:8080
|
|
||||||
script:
|
|
||||||
- npm install -g yarn@1.22.22
|
|
||||||
- yarn --frozen-lockfile
|
|
||||||
- |
|
|
||||||
echo "-- Waiting for Pleroma API..."
|
|
||||||
api_ok="false"
|
|
||||||
for _i in $(seq 1 120); do
|
|
||||||
if wget -qO- http://pleroma:4000/api/v1/instance >/dev/null 2>&1; then
|
|
||||||
api_ok="true"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 1s
|
|
||||||
done
|
|
||||||
if [ "$api_ok" != "true" ]; then
|
|
||||||
echo "Timed out waiting for Pleroma API to become available"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
- yarn e2e:pw
|
|
||||||
artifacts:
|
|
||||||
when: on_failure
|
|
||||||
paths:
|
|
||||||
- test/e2e-playwright/test-results
|
|
||||||
- test/e2e-playwright/playwright-report
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
tags:
|
tags:
|
||||||
|
|
|
||||||
18
biome.json
18
biome.json
|
|
@ -124,22 +124,6 @@
|
||||||
],
|
],
|
||||||
"assist": {
|
"assist": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"actions": {
|
"actions": { "source": { "organizeImports": "on" } }
|
||||||
"source": {
|
|
||||||
"organizeImports": {
|
|
||||||
"level": "on",
|
|
||||||
"options": {
|
|
||||||
"groups": [
|
|
||||||
[":NODE:", ":PACKAGE:", "!src/**", "!@fortawesome/**"],
|
|
||||||
":BLANK_LINE:",
|
|
||||||
[":PATH:", "src/**"],
|
|
||||||
":BLANK_LINE:",
|
|
||||||
"@fortawesome/fontawesome-svg-core",
|
|
||||||
"@fortawesome/*"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import { access } from 'node:fs/promises'
|
import { access } from 'node:fs/promises'
|
||||||
import { resolve } from 'node:path'
|
import { resolve } from 'node:path'
|
||||||
|
|
||||||
import { languages } from '../src/i18n/languages.js'
|
import { languages } from '../src/i18n/languages.js'
|
||||||
|
|
||||||
const annotationsImportPrefix = '@kazvmoe-infra/unicode-emoji-json/annotations/'
|
const annotationsImportPrefix = '@kazvmoe-infra/unicode-emoji-json/annotations/'
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import { readFile } from 'node:fs/promises'
|
import { readFile } from 'node:fs/promises'
|
||||||
import { dirname, resolve } from 'node:path'
|
import { dirname, resolve } from 'node:path'
|
||||||
import { fileURLToPath } from 'node:url'
|
import { fileURLToPath } from 'node:url'
|
||||||
|
|
||||||
import { langCodeToJsonName, languages } from '../src/i18n/languages.js'
|
import { langCodeToJsonName, languages } from '../src/i18n/languages.js'
|
||||||
|
|
||||||
const i18nDir = resolve(
|
const i18nDir = resolve(
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ import { dirname, resolve } from 'node:path'
|
||||||
import { fileURLToPath } from 'node:url'
|
import { fileURLToPath } from 'node:url'
|
||||||
import * as esbuild from 'esbuild'
|
import * as esbuild from 'esbuild'
|
||||||
import { build } from 'vite'
|
import { build } from 'vite'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
generateServiceWorkerMessages,
|
generateServiceWorkerMessages,
|
||||||
i18nFiles,
|
i18nFiles,
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
fixed being unable to set actor type from profile page
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Add playwright E2E-tests with an optional docker-based backend
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
fix e2e
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
services:
|
|
||||||
db:
|
|
||||||
image: postgres:15-alpine
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: pleroma
|
|
||||||
POSTGRES_PASSWORD: pleroma
|
|
||||||
POSTGRES_DB: pleroma
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "pg_isready -U pleroma -d pleroma"]
|
|
||||||
interval: 2s
|
|
||||||
timeout: 2s
|
|
||||||
retries: 30
|
|
||||||
|
|
||||||
pleroma:
|
|
||||||
image: ${PLEROMA_IMAGE:-git.pleroma.social:5050/pleroma/pleroma:stable}
|
|
||||||
environment:
|
|
||||||
DB_USER: pleroma
|
|
||||||
DB_PASS: pleroma
|
|
||||||
DB_NAME: pleroma
|
|
||||||
DB_HOST: db
|
|
||||||
DB_PORT: 5432
|
|
||||||
DOMAIN: localhost
|
|
||||||
INSTANCE_NAME: Pleroma E2E
|
|
||||||
ADMIN_EMAIL: ${E2E_ADMIN_EMAIL:-admin@example.com}
|
|
||||||
NOTIFY_EMAIL: ${E2E_ADMIN_EMAIL:-admin@example.com}
|
|
||||||
E2E_ADMIN_USERNAME: ${E2E_ADMIN_USERNAME:-admin}
|
|
||||||
E2E_ADMIN_PASSWORD: ${E2E_ADMIN_PASSWORD:-adminadmin}
|
|
||||||
E2E_ADMIN_EMAIL: ${E2E_ADMIN_EMAIL:-admin@example.com}
|
|
||||||
depends_on:
|
|
||||||
db:
|
|
||||||
condition: service_healthy
|
|
||||||
volumes:
|
|
||||||
- ./docker/pleroma/entrypoint.e2e.sh:/opt/pleroma/entrypoint.e2e.sh:ro
|
|
||||||
entrypoint: ["/bin/ash", "/opt/pleroma/entrypoint.e2e.sh"]
|
|
||||||
healthcheck:
|
|
||||||
# NOTE: "localhost" may resolve to ::1 in some images (IPv6) while Pleroma only
|
|
||||||
# listens on IPv4 in this container. Use 127.0.0.1 to avoid false negatives.
|
|
||||||
test: ["CMD-SHELL", "test -f /var/lib/pleroma/.e2e_seeded && wget -qO- http://127.0.0.1:4000/api/v1/instance >/dev/null || exit 1"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 3s
|
|
||||||
retries: 60
|
|
||||||
|
|
||||||
e2e:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: docker/e2e/Dockerfile.e2e
|
|
||||||
depends_on:
|
|
||||||
pleroma:
|
|
||||||
condition: service_healthy
|
|
||||||
environment:
|
|
||||||
CI: "1"
|
|
||||||
VITE_PROXY_TARGET: http://pleroma:4000
|
|
||||||
VITE_PROXY_ORIGIN: http://localhost:4000
|
|
||||||
E2E_BASE_URL: http://localhost:8080
|
|
||||||
E2E_ADMIN_USERNAME: ${E2E_ADMIN_USERNAME:-admin}
|
|
||||||
E2E_ADMIN_PASSWORD: ${E2E_ADMIN_PASSWORD:-adminadmin}
|
|
||||||
command: ["yarn", "e2e:pw"]
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
FROM mcr.microsoft.com/playwright:v1.57.0-jammy
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1
|
|
||||||
|
|
||||||
RUN npm install -g yarn@1.22.22
|
|
||||||
|
|
||||||
COPY package.json yarn.lock ./
|
|
||||||
RUN yarn --frozen-lockfile
|
|
||||||
|
|
||||||
COPY . .
|
|
||||||
|
|
||||||
ENV CI=1
|
|
||||||
|
|
||||||
CMD ["yarn", "e2e:pw"]
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
#!/bin/ash
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
SEED_SENTINEL_PATH="/var/lib/pleroma/.e2e_seeded"
|
|
||||||
CONFIG_OVERRIDE_PATH="/var/lib/pleroma/config.exs"
|
|
||||||
|
|
||||||
echo "-- Waiting for database..."
|
|
||||||
while ! pg_isready -U "${DB_USER:-pleroma}" -d "postgres://${DB_HOST:-db}:${DB_PORT:-5432}/${DB_NAME:-pleroma}" -t 1; do
|
|
||||||
sleep 1s
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "-- Writing E2E config overrides..."
|
|
||||||
cat > "$CONFIG_OVERRIDE_PATH" <<'EOF'
|
|
||||||
import Config
|
|
||||||
|
|
||||||
config :pleroma, Pleroma.Captcha,
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
config :pleroma, :instance,
|
|
||||||
registrations_open: true,
|
|
||||||
account_activation_required: false,
|
|
||||||
approval_required: false
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "-- Running migrations..."
|
|
||||||
/opt/pleroma/bin/pleroma_ctl migrate
|
|
||||||
|
|
||||||
echo "-- Starting!"
|
|
||||||
/opt/pleroma/bin/pleroma start &
|
|
||||||
PLEROMA_PID="$!"
|
|
||||||
|
|
||||||
cleanup() {
|
|
||||||
if [ -n "${PLEROMA_PID:-}" ] && kill -0 "$PLEROMA_PID" 2>/dev/null; then
|
|
||||||
kill -TERM "$PLEROMA_PID"
|
|
||||||
wait "$PLEROMA_PID" || true
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
trap cleanup INT TERM
|
|
||||||
|
|
||||||
echo "-- Waiting for API..."
|
|
||||||
api_ok="false"
|
|
||||||
for _i in $(seq 1 120); do
|
|
||||||
if wget -qO- http://127.0.0.1:4000/api/v1/instance >/dev/null 2>&1; then
|
|
||||||
api_ok="true"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
sleep 1s
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$api_ok" != "true" ]; then
|
|
||||||
echo "Timed out waiting for Pleroma API to become available"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f "$SEED_SENTINEL_PATH" ]; then
|
|
||||||
if [ -n "${E2E_ADMIN_USERNAME:-}" ] && [ -n "${E2E_ADMIN_PASSWORD:-}" ] && [ -n "${E2E_ADMIN_EMAIL:-}" ]; then
|
|
||||||
echo "-- Seeding admin user (${E2E_ADMIN_USERNAME})..."
|
|
||||||
if ! /opt/pleroma/bin/pleroma_ctl user new "$E2E_ADMIN_USERNAME" "$E2E_ADMIN_EMAIL" --admin --password "$E2E_ADMIN_PASSWORD" -y; then
|
|
||||||
echo "-- User already exists (or creation failed), ensuring admin + confirmed..."
|
|
||||||
/opt/pleroma/bin/pleroma_ctl user set "$E2E_ADMIN_USERNAME" --admin --confirmed
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "-- Skipping admin seeding (missing E2E_ADMIN_* env)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
touch "$SEED_SENTINEL_PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
wait "$PLEROMA_PID"
|
|
||||||
|
|
@ -10,8 +10,7 @@
|
||||||
"unit": "node build/update-emoji.js && vitest --run",
|
"unit": "node build/update-emoji.js && vitest --run",
|
||||||
"unit-ci": "node build/update-emoji.js && vitest --run --browser.headless",
|
"unit-ci": "node build/update-emoji.js && vitest --run --browser.headless",
|
||||||
"unit:watch": "node build/update-emoji.js && vitest",
|
"unit:watch": "node build/update-emoji.js && vitest",
|
||||||
"e2e:pw": "playwright test --config test/e2e-playwright/playwright.config.mjs",
|
"e2e": "node test/e2e/runner.js",
|
||||||
"e2e": "sh ./tools/e2e/run.sh",
|
|
||||||
"test": "yarn run unit && yarn run e2e",
|
"test": "yarn run unit && yarn run e2e",
|
||||||
"ci-biome": "yarn exec biome check",
|
"ci-biome": "yarn exec biome check",
|
||||||
"ci-eslint": "yarn exec eslint",
|
"ci-eslint": "yarn exec eslint",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import { throttle } from 'lodash'
|
import { throttle } from 'lodash'
|
||||||
import { defineAsyncComponent } from 'vue'
|
import { defineAsyncComponent } from 'vue'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
import DesktopNav from './components/desktop_nav/desktop_nav.vue'
|
import DesktopNav from './components/desktop_nav/desktop_nav.vue'
|
||||||
import EditStatusModal from './components/edit_status_modal/edit_status_modal.vue'
|
import EditStatusModal from './components/edit_status_modal/edit_status_modal.vue'
|
||||||
import FeaturesPanel from './components/features_panel/features_panel.vue'
|
import FeaturesPanel from './components/features_panel/features_panel.vue'
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,6 @@ import ShoutPanel from 'components/shout_panel/shout_panel.vue'
|
||||||
import TagTimeline from 'components/tag_timeline/tag_timeline.vue'
|
import TagTimeline from 'components/tag_timeline/tag_timeline.vue'
|
||||||
import UserProfile from 'components/user_profile/user_profile.vue'
|
import UserProfile from 'components/user_profile/user_profile.vue'
|
||||||
import WhoToFollow from 'components/who_to_follow/who_to_follow.vue'
|
import WhoToFollow from 'components/who_to_follow/who_to_follow.vue'
|
||||||
|
|
||||||
import NavPanel from 'src/components/nav_panel/nav_panel.vue'
|
import NavPanel from 'src/components/nav_panel/nav_panel.vue'
|
||||||
import BookmarkFolderEdit from '../components/bookmark_folder_edit/bookmark_folder_edit.vue'
|
import BookmarkFolderEdit from '../components/bookmark_folder_edit/bookmark_folder_edit.vue'
|
||||||
import BookmarkFolders from '../components/bookmark_folders/bookmark_folders.vue'
|
import BookmarkFolders from '../components/bookmark_folders/bookmark_folders.vue'
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,13 @@
|
||||||
import { mapState } from 'vuex'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faEllipsisV } from '@fortawesome/free-solid-svg-icons'
|
||||||
import UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'
|
import UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'
|
||||||
import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
|
import UserTimedFilterModal from 'src/components/user_timed_filter_modal/user_timed_filter_modal.vue'
|
||||||
import { useReportsStore } from 'src/stores/reports'
|
import { useReportsStore } from 'src/stores/reports'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
import ConfirmModal from '../confirm_modal/confirm_modal.vue'
|
import ConfirmModal from '../confirm_modal/confirm_modal.vue'
|
||||||
import Popover from '../popover/popover.vue'
|
import Popover from '../popover/popover.vue'
|
||||||
import ProgressButton from '../progress_button/progress_button.vue'
|
import ProgressButton from '../progress_button/progress_button.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faEllipsisV } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faEllipsisV)
|
library.add(faEllipsisV)
|
||||||
|
|
||||||
const AccountActions = {
|
const AccountActions = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import { useAnnouncementsStore } from 'src/stores/announcements'
|
import { useAnnouncementsStore } from 'src/stores/announcements'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
import localeService from '../../services/locale/locale.service.js'
|
import localeService from '../../services/locale/locale.service.js'
|
||||||
import AnnouncementEditor from '../announcement_editor/announcement_editor.vue'
|
import AnnouncementEditor from '../announcement_editor/announcement_editor.vue'
|
||||||
import RichContent from '../rich_content/rich_content.jsx'
|
import RichContent from '../rich_content/rich_content.jsx'
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import { useAnnouncementsStore } from 'src/stores/announcements'
|
import { useAnnouncementsStore } from 'src/stores/announcements'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
import Announcement from '../announcement/announcement.vue'
|
import Announcement from '../announcement/announcement.vue'
|
||||||
import AnnouncementEditor from '../announcement_editor/announcement_editor.vue'
|
import AnnouncementEditor from '../announcement_editor/announcement_editor.vue'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,3 @@
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
import { useMediaViewerStore } from 'src/stores/media_viewer'
|
|
||||||
import nsfwImage from '../../assets/nsfw.png'
|
|
||||||
import fileTypeService from '../../services/file_type/file_type.service.js'
|
|
||||||
import Flash from '../flash/flash.vue'
|
|
||||||
import StillImage from '../still-image/still-image.vue'
|
|
||||||
import VideoAttachment from '../video_attachment/video_attachment.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faAlignRight,
|
faAlignRight,
|
||||||
|
|
@ -21,6 +12,13 @@ import {
|
||||||
faTrashAlt,
|
faTrashAlt,
|
||||||
faVideo,
|
faVideo,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { useMediaViewerStore } from 'src/stores/media_viewer'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
import nsfwImage from '../../assets/nsfw.png'
|
||||||
|
import fileTypeService from '../../services/file_type/file_type.service.js'
|
||||||
|
import Flash from '../flash/flash.vue'
|
||||||
|
import StillImage from '../still-image/still-image.vue'
|
||||||
|
import VideoAttachment from '../video_attachment/video_attachment.vue'
|
||||||
|
|
||||||
library.add(
|
library.add(
|
||||||
faFile,
|
faFile,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
import { h, resolveComponent } from 'vue'
|
|
||||||
|
|
||||||
import { useAuthFlowStore } from 'src/stores/auth_flow'
|
import { useAuthFlowStore } from 'src/stores/auth_flow'
|
||||||
|
import { h, resolveComponent } from 'vue'
|
||||||
import LoginForm from '../login_form/login_form.vue'
|
import LoginForm from '../login_form/login_form.vue'
|
||||||
import MFARecoveryForm from '../mfa_form/recovery_form.vue'
|
import MFARecoveryForm from '../mfa_form/recovery_form.vue'
|
||||||
import MFATOTPForm from '../mfa_form/totp_form.vue'
|
import MFATOTPForm from '../mfa_form/totp_form.vue'
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,10 @@ const BlockCard = {
|
||||||
return this.relationship.blocking
|
return this.relationship.blocking
|
||||||
},
|
},
|
||||||
blockExpiryAvailable() {
|
blockExpiryAvailable() {
|
||||||
return Object.hasOwn(this.user, 'block_expires_at')
|
return this.user.block_expires_at !== undefined
|
||||||
},
|
},
|
||||||
blockExpiry() {
|
blockExpiry() {
|
||||||
return this.user.block_expires_at === false
|
return this.user.block_expires_at == null
|
||||||
? this.$t('user_card.block_expires_forever')
|
? this.$t('user_card.block_expires_forever')
|
||||||
: this.$t('user_card.block_expires_at', [
|
: this.$t('user_card.block_expires_at', [
|
||||||
new Date(this.user.mute_expires_at).toLocaleString(),
|
new Date(this.user.mute_expires_at).toLocaleString(),
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
|
|
||||||
import { getBookmarkFolderEntries } from 'src/components/navigation/filter.js'
|
import { getBookmarkFolderEntries } from 'src/components/navigation/filter.js'
|
||||||
import NavigationEntry from 'src/components/navigation/navigation_entry.vue'
|
import NavigationEntry from 'src/components/navigation/navigation_entry.vue'
|
||||||
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders'
|
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders'
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faChevronDown, faChevronLeft } from '@fortawesome/free-solid-svg-icons'
|
||||||
import _ from 'lodash'
|
import _ from 'lodash'
|
||||||
import { mapState as mapPiniaState } from 'pinia'
|
import { mapState as mapPiniaState } from 'pinia'
|
||||||
import { mapGetters, mapState } from 'vuex'
|
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface.js'
|
import { useInterfaceStore } from 'src/stores/interface.js'
|
||||||
|
import { mapGetters, mapState } from 'vuex'
|
||||||
import { WSConnectionStatus } from '../../services/api/api.service.js'
|
import { WSConnectionStatus } from '../../services/api/api.service.js'
|
||||||
import chatService from '../../services/chat_service/chat_service.js'
|
import chatService from '../../services/chat_service/chat_service.js'
|
||||||
import { buildFakeMessage } from '../../services/chat_utils/chat_utils.js'
|
import { buildFakeMessage } from '../../services/chat_utils/chat_utils.js'
|
||||||
|
|
@ -17,9 +18,6 @@ import {
|
||||||
isScrollable,
|
isScrollable,
|
||||||
} from './chat_layout_utils.js'
|
} from './chat_layout_utils.js'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faChevronDown, faChevronLeft } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faChevronDown, faChevronLeft)
|
library.add(faChevronDown, faChevronLeft)
|
||||||
|
|
||||||
const BOTTOMED_OUT_OFFSET = 10
|
const BOTTOMED_OUT_OFFSET = 10
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { mapGetters, mapState } from 'vuex'
|
import { mapGetters, mapState } from 'vuex'
|
||||||
|
|
||||||
import ChatListItem from '../chat_list_item/chat_list_item.vue'
|
import ChatListItem from '../chat_list_item/chat_list_item.vue'
|
||||||
import ChatNew from '../chat_new/chat_new.vue'
|
import ChatNew from '../chat_new/chat_new.vue'
|
||||||
import List from '../list/list.vue'
|
import List from '../list/list.vue'
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import fileType from 'src/services/file_type/file_type.service'
|
import fileType from 'src/services/file_type/file_type.service'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
import AvatarList from '../avatar_list/avatar_list.vue'
|
import AvatarList from '../avatar_list/avatar_list.vue'
|
||||||
import ChatTitle from '../chat_title/chat_title.vue'
|
import ChatTitle from '../chat_title/chat_title.vue'
|
||||||
import StatusBody from '../status_content/status_content.vue'
|
import StatusBody from '../status_content/status_content.vue'
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faEllipsisH, faTimes } from '@fortawesome/free-solid-svg-icons'
|
||||||
import { mapState as mapPiniaState } from 'pinia'
|
import { mapState as mapPiniaState } from 'pinia'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
import { defineAsyncComponent } from 'vue'
|
import { defineAsyncComponent } from 'vue'
|
||||||
import { mapGetters, mapState } from 'vuex'
|
import { mapGetters, mapState } from 'vuex'
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
import Attachment from '../attachment/attachment.vue'
|
import Attachment from '../attachment/attachment.vue'
|
||||||
import ChatMessageDate from '../chat_message_date/chat_message_date.vue'
|
import ChatMessageDate from '../chat_message_date/chat_message_date.vue'
|
||||||
import Gallery from '../gallery/gallery.vue'
|
import Gallery from '../gallery/gallery.vue'
|
||||||
|
|
@ -11,9 +12,6 @@ import Popover from '../popover/popover.vue'
|
||||||
import StatusContent from '../status_content/status_content.vue'
|
import StatusContent from '../status_content/status_content.vue'
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
import UserAvatar from '../user_avatar/user_avatar.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faEllipsisH, faTimes } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faTimes, faEllipsisH)
|
library.add(faTimes, faEllipsisH)
|
||||||
|
|
||||||
const ChatMessage = {
|
const ChatMessage = {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
import { mapGetters, mapState } from 'vuex'
|
|
||||||
|
|
||||||
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faChevronLeft, faSearch } from '@fortawesome/free-solid-svg-icons'
|
import { faChevronLeft, faSearch } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { mapGetters, mapState } from 'vuex'
|
||||||
|
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
||||||
|
import UserAvatar from '../user_avatar/user_avatar.vue'
|
||||||
|
|
||||||
library.add(faSearch, faChevronLeft)
|
library.add(faSearch, faChevronLeft)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import { defineAsyncComponent } from 'vue'
|
|
||||||
|
|
||||||
import RichContent from 'src/components/rich_content/rich_content.jsx'
|
import RichContent from 'src/components/rich_content/rich_content.jsx'
|
||||||
|
import { defineAsyncComponent } from 'vue'
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
import UserAvatar from '../user_avatar/user_avatar.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
|
||||||
|
|
@ -64,13 +64,11 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { throttle } from 'lodash'
|
|
||||||
|
|
||||||
import { hex2rgb } from '../../services/color_convert/color_convert.js'
|
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faEyeDropper } from '@fortawesome/free-solid-svg-icons'
|
import { faEyeDropper } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { throttle } from 'lodash'
|
||||||
|
import { hex2rgb } from '../../services/color_convert/color_convert.js'
|
||||||
|
import Checkbox from '../checkbox/checkbox.vue'
|
||||||
|
|
||||||
library.add(faEyeDropper)
|
library.add(faEyeDropper)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import ColorInput from 'src/components/color_input/color_input.vue'
|
import ColorInput from 'src/components/color_input/color_input.vue'
|
||||||
|
|
||||||
import genRandomSeed from 'src/services/random_seed/random_seed.service.js'
|
import genRandomSeed from 'src/services/random_seed/random_seed.service.js'
|
||||||
import {
|
import {
|
||||||
adoptStyleSheets,
|
adoptStyleSheets,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
import Select from 'src/components/select/select.vue'
|
import Select from 'src/components/select/select.vue'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
import ConfirmModal from './confirm_modal.vue'
|
import ConfirmModal from './confirm_modal.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
@ -19,9 +18,9 @@ export default {
|
||||||
},
|
},
|
||||||
keypath() {
|
keypath() {
|
||||||
if (this.type === 'domain') {
|
if (this.type === 'domain') {
|
||||||
return 'user_card.mute_domain_confirm'
|
return 'status.mute_domain_confirm'
|
||||||
} else if (this.type === 'conversation') {
|
} else if (this.type === 'conversation') {
|
||||||
return 'user_card.mute_conversation_confirm'
|
return 'status.mute_conversation_confirm'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
conversationIsMuted() {
|
conversationIsMuted() {
|
||||||
|
|
@ -65,9 +64,9 @@ export default {
|
||||||
switch (this.type) {
|
switch (this.type) {
|
||||||
case 'domain': {
|
case 'domain': {
|
||||||
if (!this.domainIsMuted) {
|
if (!this.domainIsMuted) {
|
||||||
this.$store.dispatch('muteDomain', this.domain)
|
this.$store.dispatch('muteDomain', { id: this.domain })
|
||||||
} else {
|
} else {
|
||||||
this.$store.dispatch('unmuteDomain', this.domain)
|
this.$store.dispatch('unmuteDomain', { id: this.domain })
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -57,14 +57,13 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Tooltip from 'src/components/tooltip/tooltip.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faAdjust,
|
faAdjust,
|
||||||
faExclamationTriangle,
|
faExclamationTriangle,
|
||||||
faThumbsUp,
|
faThumbsUp,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import Tooltip from 'src/components/tooltip/tooltip.vue'
|
||||||
|
|
||||||
library.add(faAdjust, faExclamationTriangle, faThumbsUp)
|
library.add(faAdjust, faExclamationTriangle, faThumbsUp)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,18 @@
|
||||||
import { clone, filter, findIndex, get, reduce } from 'lodash'
|
|
||||||
import { mapState as mapPiniaState } from 'pinia'
|
|
||||||
import { mapGetters, mapState } from 'vuex'
|
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
import { WSConnectionStatus } from '../../services/api/api.service.js'
|
|
||||||
import QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'
|
|
||||||
import QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'
|
|
||||||
import Status from '../status/status.vue'
|
|
||||||
import ThreadTree from '../thread_tree/thread_tree.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faAngleDoubleDown,
|
faAngleDoubleDown,
|
||||||
faAngleDoubleLeft,
|
faAngleDoubleLeft,
|
||||||
faChevronLeft,
|
faChevronLeft,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { clone, filter, findIndex, get, reduce } from 'lodash'
|
||||||
|
import { mapState as mapPiniaState } from 'pinia'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import { mapGetters, mapState } from 'vuex'
|
||||||
|
import { WSConnectionStatus } from '../../services/api/api.service.js'
|
||||||
|
import QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'
|
||||||
|
import QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'
|
||||||
|
import Status from '../status/status.vue'
|
||||||
|
import ThreadTree from '../thread_tree/thread_tree.vue'
|
||||||
|
|
||||||
library.add(faAngleDoubleDown, faAngleDoubleLeft, faChevronLeft)
|
library.add(faAngleDoubleDown, faAngleDoubleLeft, faChevronLeft)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,3 @@
|
||||||
import SearchBar from 'components/search_bar/search_bar.vue'
|
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
import ConfirmModal from '../confirm_modal/confirm_modal.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faBell,
|
faBell,
|
||||||
|
|
@ -17,6 +12,9 @@ import {
|
||||||
faTachometerAlt,
|
faTachometerAlt,
|
||||||
faUserPlus,
|
faUserPlus,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import SearchBar from 'components/search_bar/search_bar.vue'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import ConfirmModal from '../confirm_modal/confirm_modal.vue'
|
||||||
|
|
||||||
library.add(
|
library.add(
|
||||||
faSignInAlt,
|
faSignInAlt,
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,12 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faPollH } from '@fortawesome/free-solid-svg-icons'
|
||||||
import { cloneDeep } from 'lodash'
|
import { cloneDeep } from 'lodash'
|
||||||
|
|
||||||
import ConfirmModal from 'src/components/confirm_modal/confirm_modal.vue'
|
import ConfirmModal from 'src/components/confirm_modal/confirm_modal.vue'
|
||||||
import EditStatusForm from 'src/components/edit_status_form/edit_status_form.vue'
|
import EditStatusForm from 'src/components/edit_status_form/edit_status_form.vue'
|
||||||
import Gallery from 'src/components/gallery/gallery.vue'
|
import Gallery from 'src/components/gallery/gallery.vue'
|
||||||
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
|
import PostStatusForm from 'src/components/post_status_form/post_status_form.vue'
|
||||||
import StatusContent from 'src/components/status_content/status_content.vue'
|
import StatusContent from 'src/components/status_content/status_content.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faPollH } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faPollH)
|
library.add(faPollH)
|
||||||
|
|
||||||
const Draft = {
|
const Draft = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import get from 'lodash/get'
|
import get from 'lodash/get'
|
||||||
|
|
||||||
import { useEditStatusStore } from 'src/stores/editStatus'
|
import { useEditStatusStore } from 'src/stores/editStatus'
|
||||||
import EditStatusForm from '../edit_status_form/edit_status_form.vue'
|
import EditStatusForm from '../edit_status_form/edit_status_form.vue'
|
||||||
import Modal from '../modal/modal.vue'
|
import Modal from '../modal/modal.vue'
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faSmileBeam } from '@fortawesome/free-regular-svg-icons'
|
||||||
import { take } from 'lodash'
|
import { take } from 'lodash'
|
||||||
|
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
import ScreenReaderNotice from 'src/components/screen_reader_notice/screen_reader_notice.vue'
|
import ScreenReaderNotice from 'src/components/screen_reader_notice/screen_reader_notice.vue'
|
||||||
import { ensureFinalFallback } from '../../i18n/languages.js'
|
import { ensureFinalFallback } from '../../i18n/languages.js'
|
||||||
|
|
@ -9,9 +10,6 @@ import genRandomSeed from '../../services/random_seed/random_seed.service.js'
|
||||||
import EmojiPicker from '../emoji_picker/emoji_picker.vue'
|
import EmojiPicker from '../emoji_picker/emoji_picker.vue'
|
||||||
import UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'
|
import UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faSmileBeam } from '@fortawesome/free-regular-svg-icons'
|
|
||||||
|
|
||||||
library.add(faSmileBeam)
|
library.add(faSmileBeam)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,3 @@
|
||||||
import { chunk, debounce, trim } from 'lodash'
|
|
||||||
import { defineAsyncComponent } from 'vue'
|
|
||||||
|
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
|
||||||
import { ensureFinalFallback } from '../../i18n/languages.js'
|
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
|
||||||
import StillImage from '../still-image/still-image.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faBasketballBall,
|
faBasketballBall,
|
||||||
|
|
@ -21,6 +13,12 @@ import {
|
||||||
faStickyNote,
|
faStickyNote,
|
||||||
faUser,
|
faUser,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { chunk, debounce, trim } from 'lodash'
|
||||||
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
import { defineAsyncComponent } from 'vue'
|
||||||
|
import { ensureFinalFallback } from '../../i18n/languages.js'
|
||||||
|
import Checkbox from '../checkbox/checkbox.vue'
|
||||||
|
import StillImage from '../still-image/still-image.vue'
|
||||||
|
|
||||||
library.add(
|
library.add(
|
||||||
faBoxOpen,
|
faBoxOpen,
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faCheck, faMinus, faPlus } from '@fortawesome/free-solid-svg-icons'
|
||||||
import StillImage from 'src/components/still-image/still-image.vue'
|
import StillImage from 'src/components/still-image/still-image.vue'
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
import UserAvatar from '../user_avatar/user_avatar.vue'
|
||||||
import UserListPopover from '../user_list_popover/user_list_popover.vue'
|
import UserListPopover from '../user_list_popover/user_list_popover.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faCheck, faMinus, faPlus } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faPlus, faMinus, faCheck)
|
library.add(faPlus, faMinus, faCheck)
|
||||||
|
|
||||||
const EMOJI_REACTION_COUNT_CUTOFF = 12
|
const EMOJI_REACTION_COUNT_CUTOFF = 12
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,13 @@
|
||||||
import { mapState as mapPiniaState } from 'pinia'
|
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
import { useAnnouncementsStore } from 'src/stores/announcements'
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faBullhorn,
|
faBullhorn,
|
||||||
faComments,
|
faComments,
|
||||||
faUserPlus,
|
faUserPlus,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { mapState as mapPiniaState } from 'pinia'
|
||||||
|
import { useAnnouncementsStore } from 'src/stores/announcements'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
library.add(faUserPlus, faComments, faBullhorn)
|
library.add(faUserPlus, faComments, faBullhorn)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
import RuffleService from '../../services/ruffle_service/ruffle_service.js'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faExclamationTriangle,
|
faExclamationTriangle,
|
||||||
faStop,
|
faStop,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import RuffleService from '../../services/ruffle_service/ruffle_service.js'
|
||||||
|
|
||||||
library.add(faStop, faExclamationTriangle)
|
library.add(faStop, faExclamationTriangle)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,13 @@
|
||||||
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
import Select from '../select/select.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faExclamationTriangle,
|
faExclamationTriangle,
|
||||||
faFont,
|
faFont,
|
||||||
faKeyboard,
|
faKeyboard,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import Select from '../select/select.vue'
|
||||||
|
|
||||||
library.add(faExclamationTriangle, faKeyboard, faFont)
|
library.add(faExclamationTriangle, faKeyboard, faFont)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { set, sumBy } from 'lodash'
|
import { set, sumBy } from 'lodash'
|
||||||
|
|
||||||
import { useMediaViewerStore } from 'src/stores/media_viewer'
|
import { useMediaViewerStore } from 'src/stores/media_viewer'
|
||||||
import Attachment from '../attachment/attachment.vue'
|
import Attachment from '../attachment/attachment.vue'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faTimes } from '@fortawesome/free-solid-svg-icons'
|
import { faTimes } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
|
||||||
library.add(faTimes)
|
library.add(faTimes)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import 'cropperjs' // This adds all of the cropperjs's components into DOM
|
import 'cropperjs' // This adds all of the cropperjs's components into DOM
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faCircleNotch } from '@fortawesome/free-solid-svg-icons'
|
import { faCircleNotch } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import { v4 as uuidv4 } from 'uuid'
|
|
||||||
|
|
||||||
import ProfileSettingIndicator from 'src/components/settings_modal/helpers/profile_setting_indicator.vue'
|
import ProfileSettingIndicator from 'src/components/settings_modal/helpers/profile_setting_indicator.vue'
|
||||||
|
import { v4 as uuidv4 } from 'uuid'
|
||||||
import localeService from '../../services/locale/locale.service.js'
|
import localeService from '../../services/locale/locale.service.js'
|
||||||
import Select from '../select/select.vue'
|
import Select from '../select/select.vue'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,15 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faChevronLeft, faSearch } from '@fortawesome/free-solid-svg-icons'
|
||||||
import { mapState as mapPiniaState } from 'pinia'
|
import { mapState as mapPiniaState } from 'pinia'
|
||||||
import { mapGetters, mapState } from 'vuex'
|
|
||||||
|
|
||||||
import PanelLoading from 'src/components/panel_loading/panel_loading.vue'
|
import PanelLoading from 'src/components/panel_loading/panel_loading.vue'
|
||||||
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
import { useListsStore } from 'src/stores/lists'
|
import { useListsStore } from 'src/stores/lists'
|
||||||
|
import { mapGetters, mapState } from 'vuex'
|
||||||
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
import BasicUserCard from '../basic_user_card/basic_user_card.vue'
|
||||||
import ListsUserSearch from '../lists_user_search/lists_user_search.vue'
|
import ListsUserSearch from '../lists_user_search/lists_user_search.vue'
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
import UserAvatar from '../user_avatar/user_avatar.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faChevronLeft, faSearch } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faSearch, faChevronLeft)
|
library.add(faSearch, faChevronLeft)
|
||||||
|
|
||||||
const ListsNew = {
|
const ListsNew = {
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
import { mapState as mapPiniaState } from 'pinia'
|
import { mapState as mapPiniaState } from 'pinia'
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import { getListEntries } from 'src/components/navigation/filter.js'
|
import { getListEntries } from 'src/components/navigation/filter.js'
|
||||||
import NavigationEntry from 'src/components/navigation/navigation_entry.vue'
|
import NavigationEntry from 'src/components/navigation/navigation_entry.vue'
|
||||||
import { useListsStore } from 'src/stores/lists'
|
import { useListsStore } from 'src/stores/lists'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
|
||||||
export const ListsMenuContent = {
|
export const ListsMenuContent = {
|
||||||
props: ['showPin'],
|
props: ['showPin'],
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
import { debounce } from 'lodash'
|
|
||||||
|
|
||||||
import Checkbox from '../checkbox/checkbox.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faChevronLeft, faSearch } from '@fortawesome/free-solid-svg-icons'
|
import { faChevronLeft, faSearch } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { debounce } from 'lodash'
|
||||||
|
import Checkbox from '../checkbox/checkbox.vue'
|
||||||
|
|
||||||
library.add(faSearch, faChevronLeft)
|
library.add(faSearch, faChevronLeft)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
import { mapActions, mapState as mapPiniaState, mapStores } from 'pinia'
|
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import { useAuthFlowStore } from 'src/stores/auth_flow.js'
|
|
||||||
import { useOAuthStore } from 'src/stores/oauth.js'
|
|
||||||
import oauthApi from '../../services/new_api/oauth.js'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faTimes } from '@fortawesome/free-solid-svg-icons'
|
import { faTimes } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { mapActions, mapState as mapPiniaState, mapStores } from 'pinia'
|
||||||
|
import { useAuthFlowStore } from 'src/stores/auth_flow.js'
|
||||||
|
import { useOAuthStore } from 'src/stores/oauth.js'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
import oauthApi from '../../services/new_api/oauth.js'
|
||||||
|
|
||||||
library.add(faTimes)
|
library.add(faTimes)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,10 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import {
|
||||||
|
faChevronLeft,
|
||||||
|
faChevronRight,
|
||||||
|
faCircleNotch,
|
||||||
|
faTimes,
|
||||||
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
import Flash from 'src/components/flash/flash.vue'
|
import Flash from 'src/components/flash/flash.vue'
|
||||||
import { useMediaViewerStore } from 'src/stores/media_viewer'
|
import { useMediaViewerStore } from 'src/stores/media_viewer'
|
||||||
import fileTypeService from '../../services/file_type/file_type.service.js'
|
import fileTypeService from '../../services/file_type/file_type.service.js'
|
||||||
|
|
@ -8,14 +15,6 @@ import StillImage from '../still-image/still-image.vue'
|
||||||
import SwipeClick from '../swipe_click/swipe_click.vue'
|
import SwipeClick from '../swipe_click/swipe_click.vue'
|
||||||
import VideoAttachment from '../video_attachment/video_attachment.vue'
|
import VideoAttachment from '../video_attachment/video_attachment.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import {
|
|
||||||
faChevronLeft,
|
|
||||||
faChevronRight,
|
|
||||||
faCircleNotch,
|
|
||||||
faTimes,
|
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faChevronLeft, faChevronRight, faCircleNotch, faTimes)
|
library.add(faChevronLeft, faChevronRight, faCircleNotch, faTimes)
|
||||||
|
|
||||||
const MediaModal = {
|
const MediaModal = {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
/* eslint-env browser */
|
/* eslint-env browser */
|
||||||
|
|
||||||
import fileSizeFormatService from '../../services/file_size_format/file_size_format.js'
|
|
||||||
import statusPosterService from '../../services/status_poster/status_poster.service.js'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faCircleNotch, faUpload } from '@fortawesome/free-solid-svg-icons'
|
import { faCircleNotch, faUpload } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import fileSizeFormatService from '../../services/file_size_format/file_size_format.js'
|
||||||
|
import statusPosterService from '../../services/status_poster/status_poster.service.js'
|
||||||
|
|
||||||
library.add(faUpload, faCircleNotch)
|
library.add(faUpload, faCircleNotch)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faAt } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
|
||||||
import { defineAsyncComponent } from 'vue'
|
import { defineAsyncComponent } from 'vue'
|
||||||
import { mapGetters, mapState } from 'vuex'
|
import { mapGetters, mapState } from 'vuex'
|
||||||
|
|
||||||
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
|
|
||||||
import {
|
import {
|
||||||
highlightClass,
|
highlightClass,
|
||||||
highlightStyle,
|
highlightStyle,
|
||||||
|
|
@ -9,9 +10,6 @@ import {
|
||||||
import UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'
|
import UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'
|
||||||
import UserAvatar from '../user_avatar/user_avatar.vue'
|
import UserAvatar from '../user_avatar/user_avatar.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faAt } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faAt)
|
library.add(faAt)
|
||||||
|
|
||||||
const MentionLink = {
|
const MentionLink = {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
import MentionLink from 'src/components/mention_link/mention_link.vue'
|
import MentionLink from 'src/components/mention_link/mention_link.vue'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
export const MENTIONS_LIMIT = 5
|
export const MENTIONS_LIMIT = 5
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
import { mapActions, mapState as mapPiniaState, mapStores } from 'pinia'
|
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import { useAuthFlowStore } from 'src/stores/auth_flow.js'
|
|
||||||
import { useOAuthStore } from 'src/stores/oauth.js'
|
|
||||||
import mfaApi from '../../services/new_api/mfa.js'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faTimes } from '@fortawesome/free-solid-svg-icons'
|
import { faTimes } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { mapActions, mapState as mapPiniaState, mapStores } from 'pinia'
|
||||||
|
import { useAuthFlowStore } from 'src/stores/auth_flow.js'
|
||||||
|
import { useOAuthStore } from 'src/stores/oauth.js'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
import mfaApi from '../../services/new_api/mfa.js'
|
||||||
|
|
||||||
library.add(faTimes)
|
library.add(faTimes)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
import { mapActions, mapState as mapPiniaState, mapStores } from 'pinia'
|
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import { useAuthFlowStore } from 'src/stores/auth_flow.js'
|
|
||||||
import { useOAuthStore } from 'src/stores/oauth.js'
|
|
||||||
import mfaApi from '../../services/new_api/mfa.js'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faTimes } from '@fortawesome/free-solid-svg-icons'
|
import { faTimes } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { mapActions, mapState as mapPiniaState, mapStores } from 'pinia'
|
||||||
|
import { useAuthFlowStore } from 'src/stores/auth_flow.js'
|
||||||
|
import { useOAuthStore } from 'src/stores/oauth.js'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
import mfaApi from '../../services/new_api/mfa.js'
|
||||||
|
|
||||||
library.add(faTimes)
|
library.add(faTimes)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,3 @@
|
||||||
import { mapState } from 'pinia'
|
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
import NavigationPins from 'src/components/navigation/navigation_pins.vue'
|
|
||||||
import { useAnnouncementsStore } from 'src/stores/announcements'
|
|
||||||
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
|
|
||||||
import GestureService from '../../services/gesture_service/gesture_service'
|
|
||||||
import {
|
|
||||||
countExtraNotifications,
|
|
||||||
unseenNotificationsFromStore,
|
|
||||||
} from '../../services/notification_utils/notification_utils'
|
|
||||||
import ConfirmModal from '../confirm_modal/confirm_modal.vue'
|
|
||||||
import Notifications from '../notifications/notifications.vue'
|
|
||||||
import SideDrawer from '../side_drawer/side_drawer.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faArrowUp,
|
faArrowUp,
|
||||||
|
|
@ -22,6 +7,20 @@ import {
|
||||||
faMinus,
|
faMinus,
|
||||||
faTimes,
|
faTimes,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { mapState } from 'pinia'
|
||||||
|
import NavigationPins from 'src/components/navigation/navigation_pins.vue'
|
||||||
|
import { useAnnouncementsStore } from 'src/stores/announcements'
|
||||||
|
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
|
||||||
|
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
import GestureService from '../../services/gesture_service/gesture_service'
|
||||||
|
import {
|
||||||
|
countExtraNotifications,
|
||||||
|
unseenNotificationsFromStore,
|
||||||
|
} from '../../services/notification_utils/notification_utils'
|
||||||
|
import ConfirmModal from '../confirm_modal/confirm_modal.vue'
|
||||||
|
import Notifications from '../notifications/notifications.vue'
|
||||||
|
import SideDrawer from '../side_drawer/side_drawer.vue'
|
||||||
|
|
||||||
library.add(faTimes, faBell, faBars, faArrowUp, faMinus, faCheckDouble)
|
library.add(faTimes, faBell, faBars, faArrowUp, faMinus, faCheckDouble)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
import { debounce } from 'lodash'
|
|
||||||
|
|
||||||
import { usePostStatusStore } from 'src/stores/post_status'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faPen } from '@fortawesome/free-solid-svg-icons'
|
import { faPen } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { debounce } from 'lodash'
|
||||||
|
import { usePostStatusStore } from 'src/stores/post_status'
|
||||||
|
|
||||||
library.add(faPen)
|
library.add(faPen)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import DialogModal from '../dialog_modal/dialog_modal.vue'
|
|
||||||
import Popover from '../popover/popover.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faChevronDown } from '@fortawesome/free-solid-svg-icons'
|
import { faChevronDown } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
|
||||||
|
import DialogModal from '../dialog_modal/dialog_modal.vue'
|
||||||
|
import Popover from '../popover/popover.vue'
|
||||||
|
|
||||||
library.add(faChevronDown)
|
library.add(faChevronDown)
|
||||||
|
|
||||||
const FORCE_NSFW = 'mrf_tag:media-force-nsfw'
|
const FORCE_NSFW = 'mrf_tag:media-force-nsfw'
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,10 @@ const MuteCard = {
|
||||||
return this.relationship.muting
|
return this.relationship.muting
|
||||||
},
|
},
|
||||||
muteExpiryAvailable() {
|
muteExpiryAvailable() {
|
||||||
return Object.hasOwn(this.user, 'mute_expires_at')
|
return this.user.mute_expires_at !== undefined
|
||||||
},
|
},
|
||||||
muteExpiry() {
|
muteExpiry() {
|
||||||
return this.user.mute_expires_at === false
|
return this.user.mute_expires_at == null
|
||||||
? this.$t('user_card.mute_expires_forever')
|
? this.$t('user_card.mute_expires_forever')
|
||||||
: this.$t('user_card.mute_expires_at', [
|
: this.$t('user_card.mute_expires_at', [
|
||||||
new Date(this.user.mute_expires_at).toLocaleString(),
|
new Date(this.user.mute_expires_at).toLocaleString(),
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,3 @@
|
||||||
import { mapState as mapPiniaState } from 'pinia'
|
|
||||||
import { mapGetters, mapState } from 'vuex'
|
|
||||||
|
|
||||||
import BookmarkFoldersMenuContent from 'src/components/bookmark_folders_menu/bookmark_folders_menu_content.vue'
|
|
||||||
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
|
||||||
import ListsMenuContent from 'src/components/lists_menu/lists_menu_content.vue'
|
|
||||||
import { filterNavigation } from 'src/components/navigation/filter.js'
|
|
||||||
import { ROOT_ITEMS, TIMELINES } from 'src/components/navigation/navigation.js'
|
|
||||||
import NavigationEntry from 'src/components/navigation/navigation_entry.vue'
|
|
||||||
import NavigationPins from 'src/components/navigation/navigation_pins.vue'
|
|
||||||
import { useAnnouncementsStore } from 'src/stores/announcements'
|
|
||||||
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faBell,
|
faBell,
|
||||||
|
|
@ -28,6 +15,17 @@ import {
|
||||||
faStream,
|
faStream,
|
||||||
faUsers,
|
faUsers,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { mapState as mapPiniaState } from 'pinia'
|
||||||
|
import BookmarkFoldersMenuContent from 'src/components/bookmark_folders_menu/bookmark_folders_menu_content.vue'
|
||||||
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
|
import ListsMenuContent from 'src/components/lists_menu/lists_menu_content.vue'
|
||||||
|
import { filterNavigation } from 'src/components/navigation/filter.js'
|
||||||
|
import { ROOT_ITEMS, TIMELINES } from 'src/components/navigation/navigation.js'
|
||||||
|
import NavigationEntry from 'src/components/navigation/navigation_entry.vue'
|
||||||
|
import NavigationPins from 'src/components/navigation/navigation_pins.vue'
|
||||||
|
import { useAnnouncementsStore } from 'src/stores/announcements'
|
||||||
|
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
|
||||||
|
import { mapGetters, mapState } from 'vuex'
|
||||||
|
|
||||||
library.add(
|
library.add(
|
||||||
faUsers,
|
faUsers,
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faThumbtack } from '@fortawesome/free-solid-svg-icons'
|
||||||
import { mapState as mapPiniaState, mapStores } from 'pinia'
|
import { mapState as mapPiniaState, mapStores } from 'pinia'
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import { routeTo } from 'src/components/navigation/navigation.js'
|
import { routeTo } from 'src/components/navigation/navigation.js'
|
||||||
import OptionalRouterLink from 'src/components/optional_router_link/optional_router_link.vue'
|
import OptionalRouterLink from 'src/components/optional_router_link/optional_router_link.vue'
|
||||||
import { useAnnouncementsStore } from 'src/stores/announcements'
|
import { useAnnouncementsStore } from 'src/stores/announcements'
|
||||||
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
|
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faThumbtack } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faThumbtack)
|
library.add(faThumbtack)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,17 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import {
|
||||||
|
faBell,
|
||||||
|
faBookmark,
|
||||||
|
faCity,
|
||||||
|
faComments,
|
||||||
|
faEnvelope,
|
||||||
|
faGlobe,
|
||||||
|
faInfoCircle,
|
||||||
|
faList,
|
||||||
|
faStream,
|
||||||
|
faUsers,
|
||||||
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
import { mapState as mapPiniaState } from 'pinia'
|
import { mapState as mapPiniaState } from 'pinia'
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
filterNavigation,
|
filterNavigation,
|
||||||
getBookmarkFolderEntries,
|
getBookmarkFolderEntries,
|
||||||
|
|
@ -16,20 +27,7 @@ import { useAnnouncementsStore } from 'src/stores/announcements'
|
||||||
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders'
|
import { useBookmarkFoldersStore } from 'src/stores/bookmark_folders'
|
||||||
import { useListsStore } from 'src/stores/lists'
|
import { useListsStore } from 'src/stores/lists'
|
||||||
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
|
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import {
|
|
||||||
faBell,
|
|
||||||
faBookmark,
|
|
||||||
faCity,
|
|
||||||
faComments,
|
|
||||||
faEnvelope,
|
|
||||||
faGlobe,
|
|
||||||
faInfoCircle,
|
|
||||||
faList,
|
|
||||||
faStream,
|
|
||||||
faUsers,
|
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(
|
library.add(
|
||||||
faUsers,
|
faUsers,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,19 @@
|
||||||
import { mapState } from 'vuex'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import {
|
||||||
|
faCheck,
|
||||||
|
faCompressAlt,
|
||||||
|
faExpandAlt,
|
||||||
|
faEyeSlash,
|
||||||
|
faRetweet,
|
||||||
|
faStar,
|
||||||
|
faSuitcaseRolling,
|
||||||
|
faTimes,
|
||||||
|
faUser,
|
||||||
|
faUserPlus,
|
||||||
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
import RichContent from 'src/components/rich_content/rich_content.jsx'
|
import RichContent from 'src/components/rich_content/rich_content.jsx'
|
||||||
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
|
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
import { isStatusNotification } from '../../services/notification_utils/notification_utils.js'
|
import { isStatusNotification } from '../../services/notification_utils/notification_utils.js'
|
||||||
import {
|
import {
|
||||||
highlightClass,
|
highlightClass,
|
||||||
|
|
@ -17,20 +29,6 @@ import UserCard from '../user_card/user_card.vue'
|
||||||
import UserLink from '../user_link/user_link.vue'
|
import UserLink from '../user_link/user_link.vue'
|
||||||
import UserPopover from '../user_popover/user_popover.vue'
|
import UserPopover from '../user_popover/user_popover.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import {
|
|
||||||
faCheck,
|
|
||||||
faCompressAlt,
|
|
||||||
faExpandAlt,
|
|
||||||
faEyeSlash,
|
|
||||||
faRetweet,
|
|
||||||
faStar,
|
|
||||||
faSuitcaseRolling,
|
|
||||||
faTimes,
|
|
||||||
faUser,
|
|
||||||
faUserPlus,
|
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(
|
library.add(
|
||||||
faCheck,
|
faCheck,
|
||||||
faTimes,
|
faTimes,
|
||||||
|
|
|
||||||
|
|
@ -106,10 +106,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Popover from '../popover/popover.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faFilter } from '@fortawesome/free-solid-svg-icons'
|
import { faFilter } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import Popover from '../popover/popover.vue'
|
||||||
|
|
||||||
library.add(faFilter)
|
library.add(faFilter)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,14 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import {
|
||||||
|
faArrowUp,
|
||||||
|
faCircleNotch,
|
||||||
|
faMinus,
|
||||||
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
import { mapState } from 'pinia'
|
import { mapState } from 'pinia'
|
||||||
import { computed } from 'vue'
|
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
import { useAnnouncementsStore } from 'src/stores/announcements'
|
import { useAnnouncementsStore } from 'src/stores/announcements'
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import { computed } from 'vue'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
import FaviconService from '../../services/favicon_service/favicon_service.js'
|
import FaviconService from '../../services/favicon_service/favicon_service.js'
|
||||||
import {
|
import {
|
||||||
ACTIONABLE_NOTIFICATION_TYPES,
|
ACTIONABLE_NOTIFICATION_TYPES,
|
||||||
|
|
@ -17,13 +22,6 @@ import ExtraNotifications from '../extra_notifications/extra_notifications.vue'
|
||||||
import Notification from '../notification/notification.vue'
|
import Notification from '../notification/notification.vue'
|
||||||
import NotificationFilters from './notification_filters.vue'
|
import NotificationFilters from './notification_filters.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import {
|
|
||||||
faArrowUp,
|
|
||||||
faCircleNotch,
|
|
||||||
faMinus,
|
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faCircleNotch, faArrowUp, faMinus)
|
library.add(faCircleNotch, faArrowUp, faMinus)
|
||||||
|
|
||||||
const DEFAULT_SEEN_TO_DISPLAY_COUNT = 30
|
const DEFAULT_SEEN_TO_DISPLAY_COUNT = 30
|
||||||
|
|
|
||||||
|
|
@ -45,17 +45,15 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { computed } from 'vue'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faFileExport, faFileImport } from '@fortawesome/free-solid-svg-icons'
|
||||||
import ColorInput from 'src/components/color_input/color_input.vue'
|
import ColorInput from 'src/components/color_input/color_input.vue'
|
||||||
import {
|
import {
|
||||||
newExporter,
|
newExporter,
|
||||||
newImporter,
|
newImporter,
|
||||||
} from 'src/services/export_import/export_import.js'
|
} from 'src/services/export_import/export_import.js'
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import { computed } from 'vue'
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faFileExport, faFileImport } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faFileImport, faFileExport)
|
library.add(faFileImport, faFileExport)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import passwordResetApi from '../../services/new_api/password_reset.js'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faTimes } from '@fortawesome/free-solid-svg-icons'
|
import { faTimes } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
import passwordResetApi from '../../services/new_api/password_reset.js'
|
||||||
|
|
||||||
library.add(faTimes)
|
library.add(faTimes)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import Checkbox from 'components/checkbox/checkbox.vue'
|
import Checkbox from 'components/checkbox/checkbox.vue'
|
||||||
import RichContent from 'components/rich_content/rich_content.jsx'
|
import RichContent from 'components/rich_content/rich_content.jsx'
|
||||||
import Timeago from 'components/timeago/timeago.vue'
|
import Timeago from 'components/timeago/timeago.vue'
|
||||||
|
|
||||||
import { usePollsStore } from 'src/stores/polls'
|
import { usePollsStore } from 'src/stores/polls'
|
||||||
import genRandomSeed from '../../services/random_seed/random_seed.service.js'
|
import genRandomSeed from '../../services/random_seed/random_seed.service.js'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faPlus, faTimes } from '@fortawesome/free-solid-svg-icons'
|
||||||
import * as DateUtils from 'src/services/date_utils/date_utils.js'
|
import * as DateUtils from 'src/services/date_utils/date_utils.js'
|
||||||
import { pollFallback } from 'src/services/poll/poll.service.js'
|
import { pollFallback } from 'src/services/poll/poll.service.js'
|
||||||
import Select from '../select/select.vue'
|
import Select from '../select/select.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faPlus, faTimes } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faTimes, faPlus)
|
library.add(faTimes, faPlus)
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,24 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import {
|
||||||
|
faBan,
|
||||||
|
faChevronDown,
|
||||||
|
faChevronLeft,
|
||||||
|
faChevronRight,
|
||||||
|
faCircleNotch,
|
||||||
|
faPollH,
|
||||||
|
faSmileBeam,
|
||||||
|
faTimes,
|
||||||
|
faUpload,
|
||||||
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
import { debounce, map, reject, uniqBy } from 'lodash'
|
import { debounce, map, reject, uniqBy } from 'lodash'
|
||||||
import { mapActions, mapState } from 'pinia'
|
import { mapActions, mapState } from 'pinia'
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
import DraftCloser from 'src/components/draft_closer/draft_closer.vue'
|
import DraftCloser from 'src/components/draft_closer/draft_closer.vue'
|
||||||
import Gallery from 'src/components/gallery/gallery.vue'
|
import Gallery from 'src/components/gallery/gallery.vue'
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
import { pollFormToMasto } from 'src/services/poll/poll.service.js'
|
import { pollFormToMasto } from 'src/services/poll/poll.service.js'
|
||||||
import { useInterfaceStore } from 'src/stores/interface.js'
|
import { useInterfaceStore } from 'src/stores/interface.js'
|
||||||
import { useMediaViewerStore } from 'src/stores/media_viewer.js'
|
import { useMediaViewerStore } from 'src/stores/media_viewer.js'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
import { propsToNative } from '../../services/attributes_helper/attributes_helper.service.js'
|
import { propsToNative } from '../../services/attributes_helper/attributes_helper.service.js'
|
||||||
import fileTypeService from '../../services/file_type/file_type.service.js'
|
import fileTypeService from '../../services/file_type/file_type.service.js'
|
||||||
import { findOffset } from '../../services/offset_finder/offset_finder.service.js'
|
import { findOffset } from '../../services/offset_finder/offset_finder.service.js'
|
||||||
|
|
@ -23,19 +34,6 @@ import ScopeSelector from '../scope_selector/scope_selector.vue'
|
||||||
import Select from '../select/select.vue'
|
import Select from '../select/select.vue'
|
||||||
import StatusContent from '../status_content/status_content.vue'
|
import StatusContent from '../status_content/status_content.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import {
|
|
||||||
faBan,
|
|
||||||
faChevronDown,
|
|
||||||
faChevronLeft,
|
|
||||||
faChevronRight,
|
|
||||||
faCircleNotch,
|
|
||||||
faPollH,
|
|
||||||
faSmileBeam,
|
|
||||||
faTimes,
|
|
||||||
faUpload,
|
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(
|
library.add(
|
||||||
faSmileBeam,
|
faSmileBeam,
|
||||||
faPollH,
|
faPollH,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import get from 'lodash/get'
|
import get from 'lodash/get'
|
||||||
|
|
||||||
import { usePostStatusStore } from 'src/stores/post_status'
|
import { usePostStatusStore } from 'src/stores/post_status'
|
||||||
import Modal from '../modal/modal.vue'
|
import Modal from '../modal/modal.vue'
|
||||||
import PostStatusForm from '../post_status_form/post_status_form.vue'
|
import PostStatusForm from '../post_status_form/post_status_form.vue'
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
import { mapState } from 'pinia'
|
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
import Popover from '../popover/popover.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faFilter, faFont, faWrench } from '@fortawesome/free-solid-svg-icons'
|
import { faFilter, faFont, faWrench } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { mapState } from 'pinia'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
import Popover from '../popover/popover.vue'
|
||||||
|
|
||||||
library.add(faFilter, faFont, faWrench)
|
library.add(faFilter, faFont, faWrench)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,3 @@
|
||||||
import { mapState } from 'pinia'
|
|
||||||
import { mapGetters } from 'vuex'
|
|
||||||
|
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
|
||||||
import QuickFilterSettings from 'src/components/quick_filter_settings/quick_filter_settings.vue'
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faBars,
|
faBars,
|
||||||
|
|
@ -12,6 +5,11 @@ import {
|
||||||
faList,
|
faList,
|
||||||
faWrench,
|
faWrench,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { mapState } from 'pinia'
|
||||||
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
import QuickFilterSettings from 'src/components/quick_filter_settings/quick_filter_settings.vue'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
library.add(faList, faFolderTree, faBars, faWrench)
|
library.add(faList, faFolderTree, faBars, faWrench)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
import useVuelidate from '@vuelidate/core'
|
import useVuelidate from '@vuelidate/core'
|
||||||
import { required, requiredIf, sameAs } from '@vuelidate/validators'
|
import { required, requiredIf, sameAs } from '@vuelidate/validators'
|
||||||
import { mapActions, mapState } from 'vuex'
|
|
||||||
|
|
||||||
import { DAY } from 'src/services/date_utils/date_utils.js'
|
import { DAY } from 'src/services/date_utils/date_utils.js'
|
||||||
|
import { mapActions, mapState } from 'vuex'
|
||||||
import localeService from '../../services/locale/locale.service.js'
|
import localeService from '../../services/locale/locale.service.js'
|
||||||
import InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'
|
import InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'
|
||||||
import TermsOfServicePanel from '../terms_of_service_panel/terms_of_service_panel.vue'
|
import TermsOfServicePanel from '../terms_of_service_panel/terms_of_service_panel.vue'
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { flattenDeep, unescape as ldUnescape } from 'lodash'
|
import { flattenDeep, unescape as ldUnescape } from 'lodash'
|
||||||
|
|
||||||
import HashtagLink from 'src/components/hashtag_link/hashtag_link.vue'
|
import HashtagLink from 'src/components/hashtag_link/hashtag_link.vue'
|
||||||
import { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.js'
|
import { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.js'
|
||||||
import MentionsLine from 'src/components/mentions_line/mentions_line.vue'
|
import MentionsLine from 'src/components/mentions_line/mentions_line.vue'
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,12 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faCircleNotch, faSearch } from '@fortawesome/free-solid-svg-icons'
|
||||||
import { uniqBy } from 'lodash'
|
import { uniqBy } from 'lodash'
|
||||||
import map from 'lodash/map'
|
import map from 'lodash/map'
|
||||||
|
|
||||||
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
||||||
import Conversation from '../conversation/conversation.vue'
|
import Conversation from '../conversation/conversation.vue'
|
||||||
import FollowCard from '../follow_card/follow_card.vue'
|
import FollowCard from '../follow_card/follow_card.vue'
|
||||||
import Status from '../status/status.vue'
|
import Status from '../status/status.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faCircleNotch, faSearch } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faCircleNotch, faSearch)
|
library.add(faCircleNotch, faSearch)
|
||||||
|
|
||||||
const Search = {
|
const Search = {
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,3 @@
|
||||||
import Checkbox from 'components/checkbox/checkbox.vue'
|
|
||||||
import ConfirmModal from 'components/confirm_modal/confirm_modal.vue'
|
|
||||||
import Popover from 'components/popover/popover.vue'
|
|
||||||
import Select from 'components/select/select.vue'
|
|
||||||
import StillImage from 'components/still-image/still-image.vue'
|
|
||||||
import { assign, clone } from 'lodash'
|
|
||||||
|
|
||||||
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
import EmojiEditingPopover from '../helpers/emoji_editing_popover.vue'
|
|
||||||
import ModifiedIndicator from '../helpers/modified_indicator.vue'
|
|
||||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
|
||||||
import StringSetting from '../helpers/string_setting.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faArrowsRotate,
|
faArrowsRotate,
|
||||||
|
|
@ -19,6 +5,18 @@ import {
|
||||||
faFolderOpen,
|
faFolderOpen,
|
||||||
faServer,
|
faServer,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import Checkbox from 'components/checkbox/checkbox.vue'
|
||||||
|
import ConfirmModal from 'components/confirm_modal/confirm_modal.vue'
|
||||||
|
import Popover from 'components/popover/popover.vue'
|
||||||
|
import Select from 'components/select/select.vue'
|
||||||
|
import StillImage from 'components/still-image/still-image.vue'
|
||||||
|
import { assign, clone } from 'lodash'
|
||||||
|
import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import EmojiEditingPopover from '../helpers/emoji_editing_popover.vue'
|
||||||
|
import ModifiedIndicator from '../helpers/modified_indicator.vue'
|
||||||
|
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
||||||
|
import StringSetting from '../helpers/string_setting.vue'
|
||||||
|
|
||||||
library.add(faArrowsRotate, faFolderOpen, faDownload, faServer)
|
library.add(faArrowsRotate, faFolderOpen, faDownload, faServer)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faGlobe } from '@fortawesome/free-solid-svg-icons'
|
||||||
import PanelLoading from 'src/components/panel_loading/panel_loading.vue'
|
import PanelLoading from 'src/components/panel_loading/panel_loading.vue'
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
|
@ -8,9 +10,6 @@ import IntegerSetting from '../helpers/integer_setting.vue'
|
||||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
||||||
import StringSetting from '../helpers/string_setting.vue'
|
import StringSetting from '../helpers/string_setting.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faGlobe } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faGlobe)
|
library.add(faGlobe)
|
||||||
|
|
||||||
const FrontendsTab = {
|
const FrontendsTab = {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { get } from 'lodash'
|
import { get } from 'lodash'
|
||||||
|
|
||||||
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
||||||
import BooleanSetting from '../helpers/boolean_setting.vue'
|
import BooleanSetting from '../helpers/boolean_setting.vue'
|
||||||
import ChoiceSetting from '../helpers/choice_setting.vue'
|
import ChoiceSetting from '../helpers/choice_setting.vue'
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { get } from 'lodash'
|
import { get } from 'lodash'
|
||||||
|
|
||||||
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
||||||
import BooleanSetting from '../helpers/boolean_setting.vue'
|
import BooleanSetting from '../helpers/boolean_setting.vue'
|
||||||
import ChoiceSetting from '../helpers/choice_setting.vue'
|
import ChoiceSetting from '../helpers/choice_setting.vue'
|
||||||
|
|
@ -9,6 +8,7 @@ import IntegerSetting from '../helpers/integer_setting.vue'
|
||||||
import ListSetting from '../helpers/list_setting.vue'
|
import ListSetting from '../helpers/list_setting.vue'
|
||||||
import MapSetting from '../helpers/map_setting.vue'
|
import MapSetting from '../helpers/map_setting.vue'
|
||||||
import PWAManifestIconsSetting from '../helpers/pwa_manifest_icons_setting.vue'
|
import PWAManifestIconsSetting from '../helpers/pwa_manifest_icons_setting.vue'
|
||||||
|
|
||||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
||||||
import StringSetting from '../helpers/string_setting.vue'
|
import StringSetting from '../helpers/string_setting.vue'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { get } from 'lodash'
|
import { get } from 'lodash'
|
||||||
|
|
||||||
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
||||||
import BooleanSetting from '../helpers/boolean_setting.vue'
|
import BooleanSetting from '../helpers/boolean_setting.vue'
|
||||||
|
|
@ -7,6 +6,7 @@ import ChoiceSetting from '../helpers/choice_setting.vue'
|
||||||
import GroupSetting from '../helpers/group_setting.vue'
|
import GroupSetting from '../helpers/group_setting.vue'
|
||||||
import IntegerSetting from '../helpers/integer_setting.vue'
|
import IntegerSetting from '../helpers/integer_setting.vue'
|
||||||
import ListSetting from '../helpers/list_setting.vue'
|
import ListSetting from '../helpers/list_setting.vue'
|
||||||
|
|
||||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
||||||
import StringSetting from '../helpers/string_setting.vue'
|
import StringSetting from '../helpers/string_setting.vue'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faGlobe } from '@fortawesome/free-solid-svg-icons'
|
||||||
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
import AttachmentSetting from '../helpers/attachment_setting.vue'
|
||||||
import BooleanSetting from '../helpers/boolean_setting.vue'
|
import BooleanSetting from '../helpers/boolean_setting.vue'
|
||||||
import ChoiceSetting from '../helpers/choice_setting.vue'
|
import ChoiceSetting from '../helpers/choice_setting.vue'
|
||||||
|
|
@ -7,9 +9,6 @@ import ListSetting from '../helpers/list_setting.vue'
|
||||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
||||||
import StringSetting from '../helpers/string_setting.vue'
|
import StringSetting from '../helpers/string_setting.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faGlobe } from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
library.add(faGlobe)
|
library.add(faGlobe)
|
||||||
|
|
||||||
const MonitoringTab = {
|
const MonitoringTab = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import RateSetting from '../helpers/rate_setting.vue'
|
import RateSetting from '../helpers/rate_setting.vue'
|
||||||
|
|
||||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
||||||
|
|
||||||
const RatesTab = {
|
const RatesTab = {
|
||||||
|
|
|
||||||
|
|
@ -57,10 +57,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faWrench } from '@fortawesome/free-solid-svg-icons'
|
import { faWrench } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
|
||||||
library.add(faWrench)
|
library.add(faWrench)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faCircleQuestion } from '@fortawesome/free-solid-svg-icons'
|
import { faCircleQuestion } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
|
||||||
library.add(faCircleQuestion)
|
library.add(faCircleQuestion)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,10 +23,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faWrench } from '@fortawesome/free-solid-svg-icons'
|
import { faWrench } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
|
||||||
library.add(faWrench)
|
library.add(faWrench)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,10 +23,9 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Popover from 'src/components/popover/popover.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import { faServer } from '@fortawesome/free-solid-svg-icons'
|
import { faServer } from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import Popover from 'src/components/popover/popover.vue'
|
||||||
|
|
||||||
library.add(faServer)
|
library.add(faServer)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { clone } from 'lodash'
|
import { clone } from 'lodash'
|
||||||
|
|
||||||
import Attachment from 'src/components/attachment/attachment.vue'
|
import Attachment from 'src/components/attachment/attachment.vue'
|
||||||
import MediaUpload from 'src/components/media_upload/media_upload.vue'
|
import MediaUpload from 'src/components/media_upload/media_upload.vue'
|
||||||
import Select from 'src/components/select/select.vue'
|
import Select from 'src/components/select/select.vue'
|
||||||
|
|
|
||||||
|
|
@ -30,61 +30,60 @@
|
||||||
</p>
|
</p>
|
||||||
<div class="setting-control">
|
<div class="setting-control">
|
||||||
<table>
|
<table>
|
||||||
<thead>
|
<tr>
|
||||||
<tr>
|
<th> </th>
|
||||||
<th> </th>
|
<th>
|
||||||
<th>
|
{{ $t('admin_dash.rate_limit.period') }}
|
||||||
{{ $t('admin_dash.rate_limit.period') }}
|
</th>
|
||||||
</th>
|
<th>
|
||||||
<th>
|
{{ $t('admin_dash.rate_limit.amount') }}
|
||||||
{{ $t('admin_dash.rate_limit.amount') }}
|
</th>
|
||||||
</th>
|
</tr>
|
||||||
</tr>
|
<tr>
|
||||||
</thead>
|
<td v-if="isSeparate">
|
||||||
<tbody>
|
{{ $t('admin_dash.rate_limit.unauthenticated') }}
|
||||||
<tr>
|
</td>
|
||||||
<td>
|
<td v-else>
|
||||||
{{ isSeparate ? $t('admin_dash.rate_limit.unauthenticated') : $t('admin_dash.rate_limit.rate_limit') }}
|
{{ $t('admin_dash.rate_limit.rate_limit') }}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input
|
<input
|
||||||
class="input string-input"
|
class="input string-input"
|
||||||
type="number"
|
type="number"
|
||||||
:value="normalizedState[0][0]"
|
:value="normalizedState[0][0]"
|
||||||
@change="e => update({ event: e, index: 0, side: 0, eventType: 'edit' })"
|
@change="e => update({ event: e, index: 0, side: 0, eventType: 'edit' })"
|
||||||
>
|
>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input
|
<input
|
||||||
class="input string-input"
|
class="input string-input"
|
||||||
type="number"
|
type="number"
|
||||||
:value="normalizedState[0][1]"
|
:value="normalizedState[0][1]"
|
||||||
@change="e => update({ event: e, index: 1, side: 0, eventType: 'edit' })"
|
@change="e => update({ event: e, index: 1, side: 0, eventType: 'edit' })"
|
||||||
>
|
>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-if="isSeparate">
|
<tr v-if="isSeparate">
|
||||||
<td>
|
<td>
|
||||||
{{ $t('admin_dash.rate_limit.authenticated') }}
|
{{ $t('admin_dash.rate_limit.authenticated') }}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input
|
<input
|
||||||
class="input string-input"
|
class="input string-input"
|
||||||
type="number"
|
type="number"
|
||||||
:value="normalizedState[1][0]"
|
:value="normalizedState[1][0]"
|
||||||
@change="e => update({ event: e, index: 0, side: 1, eventType: 'edit' })"
|
@change="e => update({ event: e, index: 0, side: 1, eventType: 'edit' })"
|
||||||
>
|
>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<input
|
<input
|
||||||
class="input string-input"
|
class="input string-input"
|
||||||
type="number"
|
type="number"
|
||||||
:value="normalizedState[1][1]"
|
:value="normalizedState[1][1]"
|
||||||
@change="e => update({ event: e, index: 1, side: 1, eventType: 'edit' })"
|
@change="e => update({ event: e, index: 1, side: 1, eventType: 'edit' })"
|
||||||
>
|
>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
|
||||||
</table>
|
</table>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
:model-value="isSeparate"
|
:model-value="isSeparate"
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { cloneDeep, get, isEqual, set } from 'lodash'
|
import { cloneDeep, get, isEqual, set } from 'lodash'
|
||||||
|
|
||||||
import DraftButtons from './draft_buttons.vue'
|
import DraftButtons from './draft_buttons.vue'
|
||||||
import ModifiedIndicator from './modified_indicator.vue'
|
import ModifiedIndicator from './modified_indicator.vue'
|
||||||
import ProfileSettingIndicator from './profile_setting_indicator.vue'
|
import ProfileSettingIndicator from './profile_setting_indicator.vue'
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
// eslint-disable-next-line no-unused
|
// eslint-disable-next-line no-unused
|
||||||
|
|
||||||
|
import { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'
|
||||||
import { throttle } from 'lodash'
|
import { throttle } from 'lodash'
|
||||||
import { mapState as mapPiniaState, mapState } from 'pinia'
|
import { mapState as mapPiniaState, mapState } from 'pinia'
|
||||||
import { Fragment, h } from 'vue'
|
import { Fragment, h } from 'vue'
|
||||||
|
|
||||||
import { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'
|
|
||||||
|
|
||||||
import './vertical_tab_switcher.scss'
|
import './vertical_tab_switcher.scss'
|
||||||
|
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
|
||||||
const findFirstUsable = (slots) => slots.findIndex((_) => _.props)
|
const findFirstUsable = (slots) => slots.findIndex((_) => _.props)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,13 @@
|
||||||
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
|
import { faWindowMinimize } from '@fortawesome/free-regular-svg-icons'
|
||||||
|
import {
|
||||||
|
faChevronDown,
|
||||||
|
faFileDownload,
|
||||||
|
faFileUpload,
|
||||||
|
faTimes,
|
||||||
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
import { cloneDeep, isEqual } from 'lodash'
|
import { cloneDeep, isEqual } from 'lodash'
|
||||||
import { mapActions, mapState } from 'pinia'
|
import { mapActions, mapState } from 'pinia'
|
||||||
|
|
||||||
import AsyncComponentError from 'src/components/async_component_error/async_component_error.vue'
|
import AsyncComponentError from 'src/components/async_component_error/async_component_error.vue'
|
||||||
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import ConfirmModal from 'src/components/confirm_modal/confirm_modal.vue'
|
import ConfirmModal from 'src/components/confirm_modal/confirm_modal.vue'
|
||||||
|
|
@ -14,15 +21,6 @@ import getResettableAsyncComponent from 'src/services/resettable_async_component
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
import Popover from '../popover/popover.vue'
|
import Popover from '../popover/popover.vue'
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
||||||
import { faWindowMinimize } from '@fortawesome/free-regular-svg-icons'
|
|
||||||
import {
|
|
||||||
faChevronDown,
|
|
||||||
faFileDownload,
|
|
||||||
faFileUpload,
|
|
||||||
faTimes,
|
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
|
||||||
|
|
||||||
const PLEROMAFE_SETTINGS_MAJOR_VERSION = 1
|
const PLEROMAFE_SETTINGS_MAJOR_VERSION = 1
|
||||||
const PLEROMAFE_SETTINGS_MINOR_VERSION = 0
|
const PLEROMAFE_SETTINGS_MINOR_VERSION = 0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,3 @@
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
import AuthTab from './admin_tabs/auth_tab.vue'
|
|
||||||
import EmojiTab from './admin_tabs/emoji_tab.vue'
|
|
||||||
import FederationTab from './admin_tabs/federation_tab.vue'
|
|
||||||
import FrontendsTab from './admin_tabs/frontends_tab.vue'
|
|
||||||
import HTTPTab from './admin_tabs/http_tab.vue'
|
|
||||||
import InstanceTab from './admin_tabs/instance_tab.vue'
|
|
||||||
import JobQueuesTab from './admin_tabs/job_queues_tab.vue'
|
|
||||||
import LimitsTab from './admin_tabs/limits_tab.vue'
|
|
||||||
import LinksTab from './admin_tabs/links_tab.vue'
|
|
||||||
import MailerTab from './admin_tabs/mailer_tab.vue'
|
|
||||||
import MediaProxyTab from './admin_tabs/media_proxy_tab.vue'
|
|
||||||
import MonitoringTab from './admin_tabs/monitoring_tab.vue'
|
|
||||||
import OtherTab from './admin_tabs/other_tab.vue'
|
|
||||||
import PostsTab from './admin_tabs/posts_tab.vue'
|
|
||||||
import RatesTab from './admin_tabs/rates_tab.vue'
|
|
||||||
import RegistrationsTab from './admin_tabs/registrations_tab.vue'
|
|
||||||
import UploadsTab from './admin_tabs/uploads_tab.vue'
|
|
||||||
import VerticalTabSwitcher from './helpers/vertical_tab_switcher.jsx'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faChain,
|
faChain,
|
||||||
|
|
@ -37,6 +17,25 @@ import {
|
||||||
faUpload,
|
faUpload,
|
||||||
faWrench,
|
faWrench,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import AuthTab from './admin_tabs/auth_tab.vue'
|
||||||
|
import EmojiTab from './admin_tabs/emoji_tab.vue'
|
||||||
|
import FederationTab from './admin_tabs/federation_tab.vue'
|
||||||
|
import FrontendsTab from './admin_tabs/frontends_tab.vue'
|
||||||
|
import HTTPTab from './admin_tabs/http_tab.vue'
|
||||||
|
import InstanceTab from './admin_tabs/instance_tab.vue'
|
||||||
|
import JobQueuesTab from './admin_tabs/job_queues_tab.vue'
|
||||||
|
import LimitsTab from './admin_tabs/limits_tab.vue'
|
||||||
|
import LinksTab from './admin_tabs/links_tab.vue'
|
||||||
|
import MailerTab from './admin_tabs/mailer_tab.vue'
|
||||||
|
import MediaProxyTab from './admin_tabs/media_proxy_tab.vue'
|
||||||
|
import MonitoringTab from './admin_tabs/monitoring_tab.vue'
|
||||||
|
import OtherTab from './admin_tabs/other_tab.vue'
|
||||||
|
import PostsTab from './admin_tabs/posts_tab.vue'
|
||||||
|
import RatesTab from './admin_tabs/rates_tab.vue'
|
||||||
|
import RegistrationsTab from './admin_tabs/registrations_tab.vue'
|
||||||
|
import UploadsTab from './admin_tabs/uploads_tab.vue'
|
||||||
|
import VerticalTabSwitcher from './helpers/vertical_tab_switcher.jsx'
|
||||||
|
|
||||||
library.add(
|
library.add(
|
||||||
faWrench,
|
faWrench,
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,3 @@
|
||||||
import { useInterfaceStore } from 'src/stores/interface'
|
|
||||||
import VerticalTabSwitcher from './helpers/vertical_tab_switcher.jsx'
|
|
||||||
import AppearanceTab from './tabs/appearance_tab.vue'
|
|
||||||
import ClutterTab from './tabs/clutter_tab.vue'
|
|
||||||
import ComposingTab from './tabs/composing_tab.vue'
|
|
||||||
import DataImportExportTab from './tabs/data_import_export_tab.vue'
|
|
||||||
import DeveloperTab from './tabs/developer_tab.vue'
|
|
||||||
import FilteringTab from './tabs/filtering_tab.vue'
|
|
||||||
import GeneralTab from './tabs/general_tab.vue'
|
|
||||||
import LayoutTab from './tabs/layout_tab.vue'
|
|
||||||
import MutesAndBlocksTab from './tabs/mutes_and_blocks_tab.vue'
|
|
||||||
import NotificationsTab from './tabs/notifications_tab.vue'
|
|
||||||
import OldThemeTab from './tabs/old_theme_tab/old_theme_tab.vue'
|
|
||||||
import PostsTab from './tabs/posts_tab.vue'
|
|
||||||
import ProfileTab from './tabs/profile_tab.vue'
|
|
||||||
import SecurityTab from './tabs/security_tab/security_tab.vue'
|
|
||||||
import StyleTab from './tabs/style_tab/style_tab.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faBell,
|
faBell,
|
||||||
|
|
@ -33,6 +15,23 @@ import {
|
||||||
faWindowRestore,
|
faWindowRestore,
|
||||||
faWrench,
|
faWrench,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import { useInterfaceStore } from 'src/stores/interface'
|
||||||
|
import VerticalTabSwitcher from './helpers/vertical_tab_switcher.jsx'
|
||||||
|
import AppearanceTab from './tabs/appearance_tab.vue'
|
||||||
|
import ClutterTab from './tabs/clutter_tab.vue'
|
||||||
|
import ComposingTab from './tabs/composing_tab.vue'
|
||||||
|
import DataImportExportTab from './tabs/data_import_export_tab.vue'
|
||||||
|
import DeveloperTab from './tabs/developer_tab.vue'
|
||||||
|
import FilteringTab from './tabs/filtering_tab.vue'
|
||||||
|
import GeneralTab from './tabs/general_tab.vue'
|
||||||
|
import LayoutTab from './tabs/layout_tab.vue'
|
||||||
|
import MutesAndBlocksTab from './tabs/mutes_and_blocks_tab.vue'
|
||||||
|
import NotificationsTab from './tabs/notifications_tab.vue'
|
||||||
|
import OldThemeTab from './tabs/old_theme_tab/old_theme_tab.vue'
|
||||||
|
import PostsTab from './tabs/posts_tab.vue'
|
||||||
|
import ProfileTab from './tabs/profile_tab.vue'
|
||||||
|
import SecurityTab from './tabs/security_tab/security_tab.vue'
|
||||||
|
import StyleTab from './tabs/style_tab/style_tab.vue'
|
||||||
|
|
||||||
library.add(
|
library.add(
|
||||||
faWrench,
|
faWrench,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import { mapActions } from 'pinia'
|
import { mapActions } from 'pinia'
|
||||||
|
|
||||||
import fileSizeFormatService from 'src/components/../services/file_size_format/file_size_format.js'
|
import fileSizeFormatService from 'src/components/../services/file_size_format/file_size_format.js'
|
||||||
import PaletteEditor from 'src/components/palette_editor/palette_editor.vue'
|
import PaletteEditor from 'src/components/palette_editor/palette_editor.vue'
|
||||||
import { newImporter } from 'src/services/export_import/export_import.js'
|
import { newImporter } from 'src/services/export_import/export_import.js'
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import { mapActions, mapState } from 'pinia'
|
import { mapActions, mapState } from 'pinia'
|
||||||
import { v4 as uuidv4 } from 'uuid'
|
|
||||||
import { mapState as mapVuexState } from 'vuex'
|
|
||||||
|
|
||||||
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import Select from 'src/components/select/select.vue'
|
import Select from 'src/components/select/select.vue'
|
||||||
|
|
||||||
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
|
import { useServerSideStorageStore } from 'src/stores/serverSideStorage'
|
||||||
|
import { v4 as uuidv4 } from 'uuid'
|
||||||
|
import { mapState as mapVuexState } from 'vuex'
|
||||||
import BooleanSetting from '../helpers/boolean_setting.vue'
|
import BooleanSetting from '../helpers/boolean_setting.vue'
|
||||||
import ChoiceSetting from '../helpers/choice_setting.vue'
|
import ChoiceSetting from '../helpers/choice_setting.vue'
|
||||||
import HelpIndicator from '../helpers/help_indicator.vue'
|
import HelpIndicator from '../helpers/help_indicator.vue'
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,3 @@
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import FontControl from 'src/components/font_control/font_control.vue'
|
|
||||||
import InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'
|
|
||||||
import ScopeSelector from 'src/components/scope_selector/scope_selector.vue'
|
|
||||||
import Select from 'src/components/select/select.vue'
|
|
||||||
import localeService from 'src/services/locale/locale.service.js'
|
|
||||||
import { cacheKey, clearCache, emojiCacheKey } from 'src/services/sw/sw.js'
|
|
||||||
import BooleanSetting from '../helpers/boolean_setting.vue'
|
|
||||||
import ChoiceSetting from '../helpers/choice_setting.vue'
|
|
||||||
import FloatSetting from '../helpers/float_setting.vue'
|
|
||||||
import IntegerSetting from '../helpers/integer_setting.vue'
|
|
||||||
import ProfileSettingIndicator from '../helpers/profile_setting_indicator.vue'
|
|
||||||
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
|
||||||
import UnitSetting from '../helpers/unit_setting.vue'
|
|
||||||
|
|
||||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||||
import {
|
import {
|
||||||
faDatabase,
|
faDatabase,
|
||||||
|
|
@ -22,6 +6,20 @@ import {
|
||||||
faPenAlt,
|
faPenAlt,
|
||||||
faSliders,
|
faSliders,
|
||||||
} from '@fortawesome/free-solid-svg-icons'
|
} from '@fortawesome/free-solid-svg-icons'
|
||||||
|
import FontControl from 'src/components/font_control/font_control.vue'
|
||||||
|
import InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'
|
||||||
|
import ScopeSelector from 'src/components/scope_selector/scope_selector.vue'
|
||||||
|
import Select from 'src/components/select/select.vue'
|
||||||
|
import localeService from 'src/services/locale/locale.service.js'
|
||||||
|
import { cacheKey, clearCache, emojiCacheKey } from 'src/services/sw/sw.js'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
import BooleanSetting from '../helpers/boolean_setting.vue'
|
||||||
|
import ChoiceSetting from '../helpers/choice_setting.vue'
|
||||||
|
import FloatSetting from '../helpers/float_setting.vue'
|
||||||
|
import IntegerSetting from '../helpers/integer_setting.vue'
|
||||||
|
import ProfileSettingIndicator from '../helpers/profile_setting_indicator.vue'
|
||||||
|
import SharedComputedObject from '../helpers/shared_computed_object.js'
|
||||||
|
import UnitSetting from '../helpers/unit_setting.vue'
|
||||||
|
|
||||||
library.add(faGlobe, faMessage, faPenAlt, faDatabase, faSliders)
|
library.add(faGlobe, faMessage, faPenAlt, faDatabase, faSliders)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
import { mapState } from 'vuex'
|
|
||||||
|
|
||||||
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
import Checkbox from 'src/components/checkbox/checkbox.vue'
|
||||||
import Exporter from 'src/components/exporter/exporter.vue'
|
import Exporter from 'src/components/exporter/exporter.vue'
|
||||||
import Importer from 'src/components/importer/importer.vue'
|
import Importer from 'src/components/importer/importer.vue'
|
||||||
import { useOAuthTokensStore } from 'src/stores/oauth_tokens'
|
import { useOAuthTokensStore } from 'src/stores/oauth_tokens'
|
||||||
|
import { mapState } from 'vuex'
|
||||||
|
|
||||||
const DataImportExportTab = {
|
const DataImportExportTab = {
|
||||||
data() {
|
data() {
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue