48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
import { ref, computed } from 'vue'
|
|
|
|
let hasWarned = false
|
|
|
|
const warnDeprecated = () => {
|
|
if (hasWarned) return
|
|
if (process.dev) {
|
|
console.warn('[usePieceModels] Ce composable est conservé pour compatibilité mais les modèles ont été remplacés par les catégories enrichies de squelette. Utilisez usePieceTypes / usePieces à la place.')
|
|
}
|
|
hasWarned = true
|
|
}
|
|
|
|
const buildUnsupportedResult = () => ({
|
|
success: false,
|
|
error: 'Les modèles de pièces ont été retirés. Gérez les squelettes via les catégories et utilisez les requirements machine pour instancier des pièces.'
|
|
})
|
|
|
|
export function usePieceModels () {
|
|
warnDeprecated()
|
|
|
|
const pieceModelsBuckets = ref({})
|
|
const loadingPieceModels = ref(false)
|
|
|
|
const pieceModels = computed(() => [])
|
|
|
|
const noLongerSupported = async () => {
|
|
warnDeprecated()
|
|
return buildUnsupportedResult()
|
|
}
|
|
|
|
const getPieceModels = () => pieceModels.value
|
|
const getPieceModelsForType = () => []
|
|
const isPieceModelLoading = () => loadingPieceModels.value
|
|
|
|
return {
|
|
pieceModels,
|
|
pieceModelsBuckets,
|
|
loadingPieceModels,
|
|
loadPieceModels: noLongerSupported,
|
|
createPieceModel: noLongerSupported,
|
|
updatePieceModel: noLongerSupported,
|
|
deletePieceModel: noLongerSupported,
|
|
getPieceModels,
|
|
getPieceModelsForType,
|
|
isPieceModelLoading
|
|
}
|
|
}
|