forked from cybrespace/pinafore
add support for max_toot_chars > 500 (#495)
This commit is contained in:
parent
17b80e5a79
commit
47315c7f6d
|
@ -109,7 +109,7 @@
|
|||
import ComposeMedia from './ComposeMedia.html'
|
||||
import ComposeContentWarning from './ComposeContentWarning.html'
|
||||
import { measureText } from '../../_utils/measureText'
|
||||
import { CHAR_LIMIT, POST_PRIVACY_OPTIONS } from '../../_static/statuses'
|
||||
import { POST_PRIVACY_OPTIONS } from '../../_static/statuses'
|
||||
import { store } from '../../_store/store'
|
||||
import { slide } from 'svelte-transitions'
|
||||
import { postStatus, insertHandleForReply, setReplySpoiler, setReplyVisibility } from '../../_actions/compose'
|
||||
|
@ -183,7 +183,7 @@
|
|||
length: ({ textLength, contentWarningLength, contentWarningShown }) => (
|
||||
textLength + (contentWarningShown ? contentWarningLength : 0)
|
||||
),
|
||||
overLimit: ({ length }) => length > CHAR_LIMIT,
|
||||
overLimit: ({ length, $maxStatusChars }) => length > $maxStatusChars,
|
||||
contentWarningShown: ({ composeData }) => composeData.contentWarningShown,
|
||||
contentWarning: ({ composeData }) => composeData.contentWarning || '',
|
||||
timelineInitialized: ({ $timelineInitialized }) => $timelineInitialized,
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
}
|
||||
</style>
|
||||
<script>
|
||||
import { CHAR_LIMIT } from '../../_static/statuses'
|
||||
import { mark, stop } from '../../_utils/marks'
|
||||
import { store } from '../../_store/store'
|
||||
import { scheduleIdleTask } from '../../_utils/scheduleIdleTask'
|
||||
|
@ -45,9 +44,9 @@
|
|||
}),
|
||||
store: () => store,
|
||||
computed: {
|
||||
lengthAsFraction: ({ length }) => {
|
||||
lengthAsFraction: ({ length, $maxStatusChars }) => {
|
||||
// We don't need to update the gauge for every decimal point, so round it to the nearest 0.02
|
||||
let int = Math.round(Math.min(CHAR_LIMIT, length) / CHAR_LIMIT * 100)
|
||||
let int = Math.round(Math.min($maxStatusChars, length) / $maxStatusChars * 100)
|
||||
return (int - (int % 2)) / 100
|
||||
}
|
||||
},
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
}
|
||||
</style>
|
||||
<script>
|
||||
import { CHAR_LIMIT } from '../../_static/statuses'
|
||||
import { mark, stop } from '../../_utils/marks'
|
||||
import { store } from '../../_store/store'
|
||||
import { scheduleIdleTask } from '../../_utils/scheduleIdleTask'
|
||||
|
@ -41,7 +40,7 @@
|
|||
}),
|
||||
store: () => store,
|
||||
computed: {
|
||||
lengthToDisplay: ({ length }) => CHAR_LIMIT - length,
|
||||
lengthToDisplay: ({ length, $maxStatusChars }) => $maxStatusChars - length,
|
||||
lengthLabel: ({ overLimit, lengthToDisplayDeferred }) => {
|
||||
if (overLimit) {
|
||||
return `${lengthToDisplayDeferred} characters over limit`
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
export const CHAR_LIMIT = 500
|
||||
|
||||
export const POST_PRIVACY_OPTIONS = [
|
||||
{
|
||||
label: 'Public',
|
||||
|
|
|
@ -47,4 +47,13 @@ export function instanceComputations (store) {
|
|||
['currentInstanceData'],
|
||||
(currentInstanceData) => currentInstanceData && currentInstanceData.access_token
|
||||
)
|
||||
|
||||
store.compute(
|
||||
'maxStatusChars',
|
||||
['currentInstanceInfo'],
|
||||
(currentInstanceInfo) => (
|
||||
// unofficial api used in glitch-soc and pleroma
|
||||
(currentInstanceInfo && currentInstanceInfo.max_toot_chars) || 500
|
||||
)
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue